Básicamente, tengo un código que necesita para obtener el código HTML de un elemento principal cuando se borra cualquiera de sus elementos de entrada. Eso es bastante simple. El problema es que el HTML devuelto al llamar al html()
en el elemento primario no refleja el valor actual de los elementos de entrada contenidos en él. Es decir, en Firefox o Chrome. Funciona en IE de todos los lugares.html() método incorrecto cuando el valor de entrada ha cambiado
Aquí está la jsFiddle: http://jsfiddle.net/8PJMx/15/
trate de cambiar "mundo" en el cuadro de texto a "todos" y haciendo clic en el botón. Tenga en cuenta que también estoy anexando $.now()
para que pueda ver que el código se está ejecutando.
Como puede ver, $("#parent").html()
no se actualiza, aunque $("#child").val()
sí lo hace. para su placer visual, aquí está el código HTML:
<div id="parent">Hello <input type='text' id="child" value='world' /></div>
<button id="separateEvent">Get HTML.</button>
<br>
<p>The HTML for #parent is:</p>
<textarea id="parentsHtml" style="width:95%; height: 100px;"></textarea>
<p>The value of #child is:</p>
<textarea id="childsValue" style="width:95%; height: 100px;"></textarea>
... y aquí está el código JavaScript:
$("#separateEvent").click(function()
{
$("#parentsHtml").val($("#parent").html() + "\r\[email protected]" + $.now());
$("#childsValue").val($("#child").val() + "\r\[email protected]" + $.now());
});
cambiar una propiedad no cambia el código fuente HTML. ¿Qué intentas lograr con esto de todos modos? – dqhendricks
Creo que vale la pena señalar que sucede lo mismo si inspecciona el elemento en las herramientas de los navegadores. Las herramientas de Chrome todavía informan un valor de "mundo" _en el HTML_, aunque el valor mismo ha cambiado. – Mathletics
En mi experiencia, manipular el DOM a través de '.html()' rara vez es la mejor manera de hacer las cosas. – Blazemonger