2012-01-06 5 views
0

私は、チェックされたクラスを除いて、特定のクラスを持つすべてのチェックボックスをオフにしたいと思います。jQueryセレクタから返されたリストから要素を削除するにはどうすればよいですか?

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_toppings」をオフにします。選択したものを再チェックしたくない場合、またはイベントが呼び出されます。

$('input:checkbox.cheese_toppings')から返されたリストから「checkboxElement」を削除し、.attr('checked', false)をそのリストに設定するのが最善の解決策だと思いました。しかし、リストからcheckboxElementを削除する方法がわかりません。

答えて

6
$('input:checkbox.cheese_toppings').not(checkboxElement).attr('checked', false); 

jQueryのドキュメントを参照してください:.not()

+0

私は入力についてよくわかりませんでした。 –

+0

@GeorgeMauerこんにちはジョージ、彼の質問のためのコードの外に出てきましたが、*** ***はここに書かれています:http://api.jquery.com/checkbox-selector/ :) – Paulpro

+0

@GeorgeMauer注':checkbox'セレクタはjQueryだけです。これはCSSセレクタではありません。 jQueryセレクタの完全なリストはここにあります:http://api.jquery.com/category/selectors/ – Paulpro

2

$('input:checkbox.cheese_toppings').not(checkboxElement).attr('checked', false) 
+0

素晴らしい答えです...しかし、user1は10秒でそれを打ちます! – Justin

0
//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 
}); 

}); 

を試してみてください。また、あなたは、おそらくかなりのattrよりjqueryの小道具使用することに注意してください。 :checked pseudoclass(IE8ダウンはそれをサポートしていません)を見たいかもしれません。

+0

prop()とattr()のおかげで、ありがとうございました。私はそこでやってもらうためにいくつかの研究があると思います:) – Justin

+0

正直なところ、jqueryのドキュメントは信じられないほどです。あなたは2時間ほどでそれらのほとんどを読むことができ、読みやすく、有益です。 –

関連する問題