请参阅下面的示例。我正在尝试将Mike输入输入,然后点击“删除输入”以从页面中删除输入。当用户键入值时,似乎不会在DOM中更新值。我怎么能绕过这个?
答案 0 :(得分:3)
试试这个:
$("#remove").click(function() {
$("input").filter(function(){
return this.value === "Mike"
}).remove()
});
答案 1 :(得分:1)
该值已在DOM中更新,您可以使用alert($('#testing').val());
(#testing
作为您要删除的输入)进行检查。
但是$("input[value='Mike']").remove();
似乎检查源HTML中编写的HTML属性的值。奇怪的是,HTML 属性在此上下文中未更新。
试试这个反直觉的例子。在value="foo"
输入上设置#testing
并在运行时在控件中键入“Mike”,然后:
alert($('#testing').attr('value')); // Mike
alert($('input[value="foo"]').val()); // Mike
但是,您可以通过显式指定更改属性来强制更新:
$('input').bind('change',function() {
$(this).attr('value',this.value)
});
然后你的原始代码就可以了。