Javascript jQuery.val()对html块不起作用?
我不明白为什么这段代码不能按预期工作:Javascript jQuery.val()对html块不起作用?,javascript,jquery,Javascript,Jquery,我不明白为什么这段代码不能按预期工作: var $obj = jQuery('<div>xx<input type="text" value="" />xx</div>'); $obj.find('input').val('testing'); console.log($obj.html()); var$obj=jQuery('xxxx'); $obj.find('input').val('testing'); log($obj.html()); 结果输出
var $obj = jQuery('<div>xx<input type="text" value="" />xx</div>');
$obj.find('input').val('testing');
console.log($obj.html());
var$obj=jQuery('xxxx');
$obj.find('input').val('testing');
log($obj.html());
结果输出没有任何变化,即值没有变化。但是
append()
和其他函数可以正常工作。可能有什么问题?值
是输入对话框的属性
执行.val(…)
将更改值属性,而不是DOM中的值
有关属性和属性之间的差异,请参见
如果希望看到值属性中的物理更改,可以执行以下操作:
var $obj = jQuery('<div>xx<input type="text" value="" />xx</div>');
$obj.find('input').attr('value','testing');
console.log($obj.html());
var$obj=jQuery('xxxx');
$obj.find('input').attr('value','testing');
log($obj.html());
演示:属性映射到.defaultValue
属性
没有映射到.value
属性的属性。但是,
输入时,您可以设置属性“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
var$obj=jQuery('xxxx');
$obj.find('input').prop('defaultValue','testing');
log($obj.html());
//xxxx
设置.value
属性从未更改由html()
序列化的值
属性。为什么向下投票可能重复?是的,你应该鼓励含糊和不精确的答案!