jQuery - 循环遍历所有元素并删除具有特定属性的元素
我是jQuery的新手,仍在学习语法。我需要帮助以特定形式遍历所有复选框,并从服务器中删除使用x的“值”设置的那些元素。语法我到目前为止,这是不工作是:jQuery - 循环遍历所有元素并删除具有特定属性的元素
$('#FormA > :checkbox').each(function() {
var i = $(this);
if(i.attr('value') == "-99")
{
i.remove();
}
});
它看起来读取引擎盖下的。每个()方法对所有的一个“Java的增强的for循环”式的迭代API后我传递给jQuery的DOM元素。不知道虽然...
感谢您的帮助!
大多数jQuery方法被施加到每一个元素在匹配组。要做你正在尝试做的事情,你只需要选择正确的元素集并致电remove
。没有必要为each
。例如:
$("#FormA > :checkbox[value='-99']").remove();
它使用一个"attribute equals" selector找到具有的-99
一个value
复选框的输入元件。然后它从DOM中删除所有选定的元素。
为remove
明确这一点的文档:
取出集从DOM匹配的元素的。
谢谢詹姆斯!很好的解释... Matt –
我想这可能工作:
$("#FormA :checkbox[value=-99]").remove()
你的选择将最有可能的工作,如果你使用$(“#备考:复选框”),你拥有了它,现在,顺便要求复选框成为该形式的直接后代。
尝试使用属性选择器,
$('#FormA > :checkbox[value=-99]').remove();
Look Ma no jQuery!晚会晚了,但纯粹的JS方式。
var form = document.getElementById("formA");
[].forEach.call(form.querySelectorAll('input[type="checkbox"][value="-99"]'),function(el){form.removeChild(el);});
而且它的震级更快。
使用本:
$('.YourClass:checked').each(function(){
i=$(this)
if(i.val()=='-99'){i.remove()}
})
你能可能创建的jsfiddle来说明问题了吗?完全有可能您的选择器不符合您认为应该的所有元素。 – Tejs