Mam prosty kod HTML z jakimś javascript, wygląda to tak:
<html>
<head>
<script type="text/javascript">
function changeDivContent() { // ...
};
</script>
</head>
<body>
<input type="radio" name="radiobutton" value="A" onClick="changeDivContent()">
<input type="radio" name="radiobutton" value="B" onClick="changeDivContent()">
<div id="content"></div>
</body>
</html>
Chciałem tylko móc zmienić zawartość div (jej wewnętrzny HTML) poprzez wybranie jednego z przycisków radiowych „A” lub „B”, ale treść div # nie ma atrybutu „javascript”, więc pytam, jak to zrobić będzie zrobione.
javascript
html
Obrabować
źródło
źródło
document.getElementById("content").innerText = "<b>bold text?</b>";
będzie zachowywać się inaczej, a czasem całkiem pożytecznie, dodocument.getElementById("content").innerHTML = "<b>bold text?</b>";
innerHTML
zamiastinnerText
itextContent
ponieważinnerHTML
jest kompatybilny ze wszystkimi przeglądarkami.innerHTML
może łatwo doprowadzić do podatności na błędy XSS, gdy wartość pochodzi z niezaufanego wejścia. Korzystanie zinnerText
jest zawsze zalecane ze względów bezpieczeństwa i obecnie jest obsługiwane przez wszystkie przeglądarki ( caniuse.com/#feat=innertext )źródło
Uzyskaj identyfikator
div
treści, którą chcesz zmienić, a następnie przypisz tekst w następujący sposób:źródło
możesz użyć następującej funkcji pomocnika:
Gdzie
#content
musi być prawidłowy selektor CSSOto działający przykład .
Dodatkowo - dzisiaj (2018.07.01) Dokonałem porównania prędkości dla rozwiązań jquery i pure js (MacOs High Sierra 10.13.3 na Chrome 67.0.3396.99 (64-bit), Safari 11.0.3 (13604.5.6), Firefox 59.0.2 (64-bit)):
Rozwiązanie jquery było wolniejsze niż rozwiązanie czysto js: 69% na Firefox, 61% na Safari, 56% na Chrome. Najszybszą przeglądarką dla czystego jsa był Firefox z 560 mln operacji na sekundę, drugą była Safari 426 mln, a najwolniejsza Chrome 122 mln.
Zwycięzcami są więc js i firefox (3 razy szybszy niż chrome!)
Możesz to przetestować na swoim komputerze: https://jsperf.com/js-jquery-html-content-change
źródło
----------------- JS- kod ------------
Kod na żywo
https://jsbin.com/poreway/edit?html,js,output
źródło
zmień na Kliknij
onClick="changeDivContent(this)"
i spróbujPokaż fragment kodu
źródło