Javascript 如何从jQuery选择器返回的列表中删除元素?

Javascript 如何从jQuery选择器返回的列表中删除元素?,javascript,jquery,Javascript,Jquery,我想取消选中所有具有特定类的复选框,除了刚才选中的那个类 function PizzaToppings_OptionValueChanged(checkboxElement) { if ($(checkboxElement).attr("checked")) { if($(checkboxElement).hasClass('cheese_toppings')) { // This will uncheck all other "c

我想取消选中所有具有特定类的复选框,除了刚才选中的那个类

function PizzaToppings_OptionValueChanged(checkboxElement) {
    if ($(checkboxElement).attr("checked")) {
        if($(checkboxElement).hasClass('cheese_toppings'))
        {
            // This will uncheck all other "cheese_toppings" but I want the newly selected item "checkboxElement" to remain checked.
            $('input:checkbox.cheese_toppings').attr('checked', false);
        }
    }
}
上面的代码将取消选中所有“cheese_浇头”,包括刚刚选中的一个。我不想再次检查刚刚选择的事件,否则事件将被召回

我认为最好的解决方案是从
$('input:checkbox.cheese\u toppings')
返回的列表中删除“checkbox元素”,然后将
.attr('checked',false)
设置到该列表中。但我不知道如何从列表中删除checkboxElement

$('input:checkbox.cheese_toppings').not(checkboxElement).attr('checked', false);
请参阅jQuery文档:

试试看

$('input:checkbox.cheese_toppings').not( checkboxElement ).attr('checked', false)
还请注意,您可能希望使用jquery prop而不是attr。
您可能还想看看(IE8 down不支持它)

ooh,我不知道输入:类型语法…哪里有文档记录?@GeorgeMauer嗨,乔治,这是他的问题的代码,但这里有文档记录:)@GeorgeMauer注意,
:checkbox
选择器只是jQuery。它不是CSS选择器。这里有一个完整的jQuery选择器列表:@GeorgeMauer还注意到jQuery文档中说:“为了在现代浏览器中获得更好的性能,请使用[type=“checkbox”]而不是“”,谢谢@user1。我会给你2分钟的积分,除非你想成为一个温柔的人,把分数传给弗里茨弗罗姆伦敦。回答得好。。。但是user1比你快了10秒!感谢您对prop()和attr()的推荐。我想我也有一些研究要做:)老实说,jquery文档令人难以置信,你可以在大约2小时内阅读其中的大部分,而且它们非常容易阅读,信息量也非常丰富。
//when the page is loaded
$(function() {

//select all checkboxes with class cheese_topping
var allToppingBoxes = $('input[type=checkbox].cheese_topping') 

//when one of these is clicked
allToppingBoxes.click(function() {
  //if the box was unchecked do nothing
  if(!$(this).attr('checked'))
     return;

  //select all except this one that was clicked
  allToppingBoxes.not(this)
    .attr('checked', false); //uncheck all
});

});