2016-03-26 24 views
0

işaretliyim.Onay kutusunun bir sınıfı olup olmadığını kontrol edin ve

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

Şimdi iki tane ifadem var. Onları nasıl tek bir koşulda birleştirmek?

denedim:

1)

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

Bana bir hata verdi: .hasClass("...").is('...') is not a function.

2) Çalışıyor

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

.

Bu iki deyim nasıl basitleştirilmiş bir şekilde birleştirilir? Durumu basitleştirebilir miyiz?

cevap

1

Sen bunu yapabilir,

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

eklenmesi u Turp içinde sorunu yeniden Can – Prabs

+0

@Prabs olmuyor? Bu çalışmalı. –

+0

[fiddle] (http://jsfiddle.net/sr6gaL37/1/) un-check on subnoverde – Prabs

0

Sen .is() içine kontrol sınıfını taşıyabilirsiniz:

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

$(this).hasClass("select").is(':checked')

.hasClass() döner boole çünkü değil $(this) nesneyi çalışmıyor, bunu da değildir zincir jQuery yöntemleri sağlayabilirsiniz.

İlgili konular