2016-03-26 79 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方法。

相关问题