jQuery - 循环遍历所有元素并删除具有特定属性的元素

时间:2012-05-04 14:43:13

标签: jquery dom

我是jQuery的新手,我还在学习语法。我需要帮助循环遍历特定表单中的所有复选框,并从服务器中删除我使用x的“值”设置的那些元素。到目前为止,我所使用的语法是:

$('#FormA > :checkbox').each(function() {
     var i = $(this);
     if(i.attr('value') == "-99")
     {
          i.remove();   
     }
});

它看起来在读取API后面的.each()方法对我传递给jQuery的所有DOM元素执行“java enhanced for loop”样式迭代。虽然不确定......

感谢您的帮助!

6 个答案:

答案 0 :(得分:4)

尝试使用属性选择器

$('#FormA > :checkbox[value=-99]').remove();

答案 1 :(得分:3)

我认为这可行:

$("#FormA :checkbox[value=-99]").remove()

答案 2 :(得分:3)

大多数jQuery方法都应用于匹配集中的每个元素。要执行您要执行的操作,您只需选择正确的元素集并调用remove即可。 each不需要$("#FormA > :checkbox[value='-99']").remove(); 。例如:

value

这使用"attribute equals" selector查找-99 {{1}}的复选框输入元素。然后它从DOM中删除所有选定的元素。

remove的文档明确指出:

  

从DOM中删除匹配元素集

答案 3 :(得分:1)

看Ma没有jQuery!派对的时间不多,但是纯粹的JS方式。

var form = document.getElementById("formA");

[].forEach.call(form.querySelectorAll('input[type="checkbox"][value="-99"]'),function(el){form.removeChild(el);});​

<强> Live Demo

它的MAGNITUDES更快。

<强> JS Perf

答案 4 :(得分:0)

如果你使用$('#FormA:checkbox')你的选择器很可能会有效,就像你现在的方式一样,要求复选框是表格的直接后代。

答案 5 :(得分:-1)

使用它:

$('.YourClass:checked').each(function(){
i=$(this)
if(i.val()=='-99'){i.remove()}
})
相关问题