1

请参阅下面的示例。我正在尝试将 Mike 输入到输入中,然后点击“删除输入”以从页面中删除输入。当用户键入值时,DOM 中的值似乎没有更新。我怎样才能解决这个问题?

示例:http: //jsfiddle.net/ZMSaD/

4

2 回答 2

3

试试这个:

$("#remove").click(function() {
    $("input").filter(function(){
       return this.value === "Mike"
    }).remove()
});

http://jsfiddle.net/N6pw6/

于 2012-09-17T17:51:32.013 回答
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)
});

然后您的原始代码将起作用。

于 2012-09-17T18:29:39.990 回答