假设我有一个包含以下内容的HTML文档:
<form id = "my_form">
<input type = "text" />
<input type = "text" />
<input type = "text" />
<button type = "button" onclick = "removeGoodInputs()">Do the job</button>
</form>
我想摆脱满足某些条件的输入值(在我的JS中给出)。我尝试创建removeGoodInputs()
函数(如下所示),但这会删除表单中的所有输入。我该如何解决这个问题?
function removeGoodInputs() {
$("#my_form input").each(function() {
if(this.attr("value") == 10)
$(this).remove();
});
}
答案 0 :(得分:1)
attr
是jQuery对象的方法之一,首先应该将DOM对象this
转换为jQuery对象,然后使用jQuery方法$(this).attr("")
,也可以使用val
1}}获取/设置表单控件的值而非attr
的方法,而您不需要each
,您可以使用Attribute Equals Selector
:
function removeGoodInputs() {
$("#my_form input[value='10']").remove();
}
$("#my_form input[value='10']")
选择其值为10
的输入。
答案 1 :(得分:1)
解决此问题的另一种方法是使用.filter
[docs]:
$("#my_form input").filter(function() {
return this.value === '10';
}).remove();
答案 2 :(得分:0)
function removeGoodInputs() {
$("#my_form input").each(function() {
if($(this).val() == 10) $(this).remove();
});
}
答案 3 :(得分:0)
.attr()
是一个jQuery方法,因此只能在jQuery对象上调用它。此外,在jQuery中.val()
是获取值的更简单方法(快捷方式)。
所以,这行代码不正确:
if(this.attr("value") == 10)
我会建议:
if (this.value == "10") // plain javascript
或:
if ($(this).val() == "10") // jQuery
注意,我还将比较更改为字符串,因为这是.value
返回的内容,最好不要依赖自动类型转换。
您可以在此处查看:http://jsfiddle.net/jfriend00/HMemp/