2016-03-26 83 views
0

我在處理複選框。檢查複選框是否具有類別並已選中

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

現在我有兩個if語句。如何在單一條件下合併它們?

我已經試過:

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 
} 

它的工作。

如何以簡化的方式將這兩個單語句合併?我們可以簡化條件嗎?

回答

1

你可以做到這一點,

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

附加沒有發生 – Prabs

+0

@Prabs u能重現問題的小提琴?這應該工作。 –

+0

[fiddle](http://jsfiddle.net/sr6gaL37/1/)未檢查的減法 – Prabs

0

您可以將檢查類遷入.is()

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

$(this).hasClass("select").is(':checked')不起作用,因爲.hasClass()返回Boolean,而不是$(this)對象,所以你可以在它不是鏈jQuery方法。

相關問題