¿Cómo puedo cambiar el contenido div con JavaScript?

Resuelto Rob asked hace 14 años • 5 respuestas

Tengo un código HTML simple con algo de JavaScript. Parece que:

<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>
Expandir fragmento

Solo quería poder cambiar el contenido del div (es html interno) seleccionando uno de los botones de opción "A" o "B", pero div#content no tiene el atributo "valor" de JavaScript, así que pregunto cómo puede estar hecho.

Rob avatar Mar 31 '10 22:03 Rob
Aceptado

Suponiendo que no estás usando jQuery o alguna otra biblioteca que te facilite este tipo de cosas, puedes usar la propiedad internalHTML del elemento.

document.getElementById("content").innerHTML = "whatever";
Syntactic avatar Mar 31 '2010 15:03 Syntactic

Usando jQuery:

$('#content').html('whatever');
Michael Sanchez avatar Apr 15 '2015 20:04 Michael Sanchez

puede utilizar la siguiente función auxiliar:

function content(divSelector, value) {
    document.querySelector(divSelector).innerHTML = value;
}

content('#content',"whatever");

¿Dónde #contentdebe haber un selector CSS válido?

Aquí hay un ejemplo de trabajo .


Además, hoy (01.07.2018) hice una comparación de velocidad para soluciones jquery y js puras (MacOs High Sierra 10.13.3 en Chrome 67.0.3396.99 (64 bits), Safari 11.0.3 (13604.5.6), Firefox 59.0.2 (64 bits)):

document.getElementById("content").innerHTML = "whatever"; // pure JS
$('#content').html('whatever');                            // jQuery

ingrese la descripción de la imagen aquí

La solución jquery fue más lenta que la solución js pura: 69% en Firefox, 61% en Safari, 56% en Chrome. El navegador más rápido para js puro fue Firefox con 560 millones de operaciones por segundo, el segundo fue Safari con 426 millones y el más lento fue Chrome con 122 millones.

Entonces, los ganadores son js puro y firefox (¡3 veces más rápido que Chrome!)

Puedes probarlo en tu máquina: https://jsperf.com/js-jquery-html-content-change

Kamil Kiełczewski avatar Jul 01 '2018 18:07 Kamil Kiełczewski