2010-08-10 30 views
32

Tôi muốn nhận giá trị của thuộc tính lớp cho một phần tử sử dụng JavaScript. Tuy nhiên trong tình huống cụ thể này tôi không có sự sang trọng của thư viện như YUI, jQuery, vv và cần phải dính vào những điều cơ bản.JavaScript nhận lớp yếu tố mà không cần bất kỳ thư viện nào

Cụ thể, tôi đang lặp qua một bảng và muốn kiểm tra lớp của ô.

tôi đã cố gắng:

var colClass = el.getAttribute('class');

var colClass = el.class; 

Nhưng cả dường như được làm việc. Trong ví dụ trên, el được đặt từ mảng ô của bảng, chẳng hạn như var el = document.getElementById('myTable').rows[y].cells[y];

Trả lời

57

Có lẽ bạn nên thử loại này

var colClass = el.className 
2

className?

Element.className

<html> 
<body id="myid" class="mystyle"> 

<script> 
var x=document.getElementsByTagName('body')[0]; 
document.write("Body CSS class: " + x.className); 
document.write("<br>"); 
document.write("An alternate way: "); 
document.write(document.getElementById('myid').className); 
</script> 

</body> 
</html> 
12

Dòng này mà bạn đăng tải sẽ làm việc:

var colClass = el.getAttribute('class'); 

Bạn có thể đăng những gì bạn nhận được lỗi trong trình duyệt? Hãy chắc chắn rằng el không phải là null.

Nếu bạn sẽ không nhận được rằng một để làm việc, the attribute of the object is className, not class:

var colClass = el.className; 
+1

getAttribute ('lớp') trả về null. Đối với cùng một phần tử, .className đã trả về lớp. – Zugwalt

+0

@Zugwalt - Đã lâu rồi kể từ khi đăng bài. Bạn có biết tại sao getAttribute có thể thất bại? – HelloWorldNoMore

+0

@HelloWorldKhông có khả năng điều này được thấy trong trình duyệt cũ hơn như IE6 hoặc IE7 – Zugwalt

0

Hãy nhớ rằng:

Nếu bạn nhận được một lỗi và className không làm việc này có thể là do yếu tố của bạn là một đối tượng jQuery.

works not on jquery

Trong hình ở trên bạn thấy rằng tôi canot sử dụng className trên một đối tượng jQuery

Các vấn đề liên quan