J'ai du code HTML simple avec du javascript, ça ressemble à:
<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>
Je voulais juste pouvoir changer le contenu du div (c'est du HTML interne) en sélectionnant l'un des boutons radio "A" ou "B", mais le contenu div # n'a pas d'attribut javascript "value", donc je demande comment il peut être terminé.
javascript
html
Rob
la source
la source
document.getElementById("content").innerText = "<b>bold text?</b>";
Soit dit en passant , se comportera différemment, et parfois très utilement, pourdocument.getElementById("content").innerHTML = "<b>bold text?</b>";
innerHTML
plutôt queinnerText
ettextContent
carinnerHTML
est compatible avec tous les navigateurs.innerHTML
peut facilement conduire à des vulnérabilités XSS lorsque la valeur provient d'une entrée non fiable. L'utilisation deinnerText
est toujours recommandée pour des raisons de sécurité et est actuellement prise en charge par tous les navigateurs ( caniuse.com/#feat=innertext )la source
Obtenez l'ID du
div
contenu dont vous souhaitez modifier puis attribuez le texte comme ci-dessous:la source
vous pouvez utiliser la fonction d'assistance suivante:
Où
#content
doit être un sélecteur CSS valideVoici un exemple de travail .
De plus - aujourd'hui (2018.07.01), j'ai fait une comparaison de vitesse pour les solutions jquery et pure js (MacOs High Sierra 10.13.3 sur Chrome 67.0.3396.99 (64 bits), Safari 11.0.3 (13604.5.6), Firefox 59.0.2 (64 bits)):
La solution jquery était plus lente que la solution pure js: 69% sur firefox, 61% sur safari, 56% sur chrome. Le navigateur le plus rapide pour pure js était firefox avec 560 millions d'opérations par seconde, le second était safari 426 millions et le plus lent était le chrome 122 millions.
Les gagnants sont donc pur js et firefox (3x plus rapide que chrome!)
Vous pouvez le tester sur votre machine: https://jsperf.com/js-jquery-html-content-change
la source
----------------- Code JS ------------
Code en direct
https://jsbin.com/poreway/edit?html,js,output
la source
changer onCliquez sur
onClick="changeDivContent(this)"
et essayezAfficher l'extrait de code
la source