我是jQuery的新手,我还在学习语法。我需要帮助循环遍历特定表单中的所有复选框,并从服务器中删除我使用x的“值”设置的那些元素。到目前为止,我所使用的语法是:
$('#FormA > :checkbox').each(function() {
var i = $(this);
if(i.attr('value') == "-99")
{
i.remove();
}
});
它看起来在读取API后面的.each()方法对我传递给jQuery的所有DOM元素执行“java enhanced for loop”样式迭代。虽然不确定......
感谢您的帮助!
答案 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()}
})