1

我是 jQuery 新手,仍在学习语法。我需要帮助以特定形式遍历所有复选框,并从服务器中删除我设置为 x 的“值”的那些元素。到目前为止,我没有工作的语法是:

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

它在阅读 API 后发现 .each() 方法在我传递给 jQuery 的所有 DOM 元素上执行“java 增强的 for 循环”样式迭代。虽然不确定...

谢谢你的帮助!

4

6 回答 6

4

尝试使用属性选择器,

$('#FormA > :checkbox[value=-99]').remove();
于 2012-05-04T14:45:49.317 回答
3

我认为这可能有效:

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

于 2012-05-04T14:45:29.033 回答
3

大多数 jQuery 方法适用于匹配集中的每个元素。要做你想做的事,你只需要选择正确的元素集并调用remove. 没有必要each。例如:

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

这使用“属性等于”选择器来查找带有valueof 的复选框输入元素-99。然后它从 DOM 中删除所有选定的元素。

用于说明这一点的文档remove

从 DOM中删除匹配的元素集。

于 2012-05-04T14:45:59.517 回答
1

看马没有jQuery!晚会有点晚,但是纯粹的 JS 方式。

​</p>

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

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

现场演示

它的 MAGNITUDES 也更快。

JS 性能

于 2012-05-04T14:54:04.020 回答
0

如果您使用 $('#FormA :checkbox'),您的选择器很可能会起作用,您现在拥有的方式要求复选框是表单的直接后代。

于 2012-05-04T14:45:39.077 回答
-1

用这个:

$('.YourClass:checked').each(function(){
i=$(this)
if(i.val()=='-99'){i.remove()}
})
于 2012-05-04T15:30:01.197 回答