jQuery .val () no funciona en html chunk?

No puedo entender por qué este código no funciona como se esperaba:

var $obj = jQuery('<div>xx<input type="text" value="" />xx</div>'); $obj.find('input').val('testing'); console.log($obj.html()); 

El resultado resultante es sin ningún cambio, es decir, sin cambio en el valor. Pero append() y otras funciones funcionan bien. ¿Qué podría estar mal?

2 Solutions collect form web for “jQuery .val () no funciona en html chunk?”

value es un atributo del cuadro de dialog de input.

Hacer .val(...) cambia la propiedad de valor y no el valor en el DOM.

Vea aquí las diferencias entre properties y attributes.


Si quisiera ver un cambio físico en el atributo de valor, podría hacer algo como esto:

 var $obj = jQuery('<div>xx<input type="text" value="" />xx</div>'); $obj.find('input').attr('value','testing'); console.log($obj.html()); 

Demostración: http://jsfiddle.net/maniator/YsZLt/

El atributo "value" asigna a la propiedad .defaultValue .

No hay ningún atributo que se .value propiedad .value . Sin embargo, en inputs de inputs no sucias , puede establecer el atributo "value" (y obviamente, .defaultValue ) y eso se reflejará en la propiedad .value .

Como tu input no está sucia, puedes hacer esto

 var $obj = jQuery('<div>xx<input type="text" value="" />xx</div>'); $obj.find('input').prop('defaultValue', 'testing'); console.log($obj.html()); //xx<input type="text" value="testing">xx 
  • mCustomScrollbar no se actualiza después de agregar nuevo elemento
  • $ .post siendo cancelado en cromo
  • JavaScript detecta dates válidas
  • Rails, Javascript no se carga después de hacer clic en link_to helper
  • Mostrar / ocultar div si la checkbox está seleccionada
  • Cómo acortar una function jQuery?
  • ¿Cómo agrego / elimino elementos en una barra de navigation de jQuery Mobile?
  • discretos javascript puntos de dolor a tener en count de
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.