2011-07-28 48 views
8

Làm cách nào để xác định xem có tồn tại .attr('class') không?jQuery kiểm tra xem Attr Class có tồn tại không?

Tôi đang sử dụng mã này:

if(jQuery(this).attr('class') != undefined && jQuery(this).hasClass('myclass')) { 
    //Do something 
} 

Nó dường như không làm việc.

+3

Chỉ cần tự hỏi tại sao bạn kiểm tra xem lớp attr có tồn tại hay không. 'hasClass' sẽ kiểm tra nếu nó có một lớp và thường là đủ – locrizak

+0

nó sẽ kiểm tra nếu nó' undefined' tuy nhiên? – Tom

+0

@Tom: Chức năng đang làm những gì nó nói. Nếu thuộc tính 'class' không tồn tại hoặc nó rỗng, thì rõ ràng là phần tử không có lớp. Tại sao bạn không thử nó: http://jsfiddle.net/sP9YR/ –

Trả lời

20

Tùy thuộc vào những gì bạn muốn. Bạn có muốn kiểm tra xem một phần tử có thuộc tính lớp, chẳng hạn như:

<div class></div> 
<div class=""></div> 
<div class="abc"></div> 

Nếu vậy, sử dụng:

if ($('div').attr('class') != undefined)... 

Nếu bạn đang cố gắng để kiểm tra xem phần tử có một lớp học cụ thể, sử dụng:

if ($('div').hasClass('abc'))... 
+0

nếu tôi muốn kiểm tra cả hai thì sao? hoặc 'hasClass' thực hiện điều này không? – Tom

+2

Có, nếu một phần tử không có thuộc tính lớp và bạn thực hiện, ví dụ: $ (...). HasClass ('abc'), nó sẽ tự động trả về false. – Abraham

0

Giá trị trả lại nếu lớp thuộc tính không tồn tại là null hoặc một chuỗi rỗng.

0

mã này làm việc thực sự: fiddle

HTML:

01.
<div></div> 
<div class="myclass"></div> 
<div class="blah"></div> 
<div></div> 
<div class="myclass"></div> 
<div class="myclass"></div> 
<div></div> 
<div class="myclass andAnotherClass"></div>​ 

JS:

$("div").each(function(){ 
if(jQuery(this).attr('class') != undefined && jQuery(this).hasClass('myclass')) { 
    jQuery(this).html("I have it"); 
     } else { 
      jQuery(this).html("I don't have it"); 
     } 
});​ 
1

Hãy thử điều này ..

if(jQuery('#id1').attr('class') =="") { 
     alert($('#id1').attr('class')); 
    } 

<div id="id1">test</div>

1

Bạn có thể kiểm tra xem một phần tử với bất kỳ lớp tồn tại bằng cách chỉ cần gọi 'chiều dài 'trên một đối tượng jquery.

$('.myclass').length 
Các vấn đề liên quan