2016-03-26 9 views
0

チェックボックスを処理しています。チェックボックスにクラスがあり、チェックされていることを確認してください。

if ($(this).hasClass("select")) { // To check class name 
    if ($(this).is(':checked')) { // to check whether it is checked 
    // some code 
    } 
} 

ここではif文が2つあります。どのように単一の条件でそれらをマージするには?

は、私が試してみた:

1)

if ($(this).hasClass("select").is(':checked')) { 
    //statements 
} 

それは私にエラーを与えた:.hasClass("...").is('...') is not a function

2)

if ($(this).hasClass("select") && $(this).is(':checked')) { 
    // some code 
} 
else if ($(this).hasClass("select") && $(this).not(':checked')) { 
    // some code 
} 

それは働いています。

これらの2つを単一ステートメントで簡単にマージするにはどうすればよいですか?条件を簡略化できますか?

答えて

1

var cond = $(this).is(".select:checked"); 
var val = parseInt($(this).parent().next().text()); 
sum += (cond ? val : -(val)); 
+0

付加は、uはフィドルで問題を再現することができ – Prabs

+0

@Prabsが起きていませんか?これはうまくいくはずです。 –

+0

[fiddle](http://jsfiddle.net/sr6gaL37/1/)uncheck on substituteは起きていません – Prabs

0

あなたは.is()にチェックインクラスを移動することができます。

if ($(this).is(".select:checked")) 

$(this).hasClass("select").is(':checked').hasClass()返すブール値ではなく、$(this)オブジェクトので動作しませんので、あなたはそれにチェーンjQueryのメソッドをすることはできません。あなたがすることによってそれを行うことができます

関連する問題