我无法弄清楚,为什么这段代码无法正常工作:
var $obj = jQuery('<div>xx<input type="text" value="" />xx</div>');
$obj.find('input').val('testing');
console.log($obj.html());
结果输出没有任何变化 - 即没有值的变化。但append()
和其他功能正常。可能有什么不对?
答案 0 :(得分:7)
value
是输入对话框的 atrribute 。
执行.val(...)
更改值属性,而不是DOM中的值。
有关属性和属性之间的差异,请参阅here。
如果您想在值属性中看到物理更改,可以执行以下操作:
var $obj = jQuery('<div>xx<input type="text" value="" />xx</div>');
$obj.find('input').attr('value','testing');
console.log($obj.html());
答案 1 :(得分:0)
"value"
- 属性映射到.defaultValue
属性。
没有属性映射到.value
属性。但是,non-dirty inputs
输入,您可以设置属性"value"
(显然,.defaultValue
),这将被反映出来
在属性.value
。
由于您的输入是非脏的,您可以这样做
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