2012-06-29 32 views
17

Cách tìm lớp cuối cùng trên phần tử mà không biết số lớp chính xác?jQuery - tìm lớp cuối cùng trên phần tử

yếu tố của chúng tôi:

<div class="class-1 class-2 some-other-class"></div> 

cách tiếp cận thông thường với chia sẽ không làm việc ở đây, như chúng ta không biết số lượng các lớp học. Chúng tôi có thể kiểm tra độ dài của .split(' ') không?

var i = $('div').prop('class'); 
var j = i.split(' ')[x]; 

Mọi đề xuất được đánh giá cao.

+3

Nếu bạn muốn làm trong một dòng thì 'i.split ('') [i.split ('') .length - 1]' sẽ đưa bạn đến lớp cuối cùng. –

+0

Lớp học về cơ bản là các thực thể không có thứ tự. Cá nhân, tôi sẽ không muốn dựa vào javascript/jQuery cung cấp kết quả "chính xác". Nếu tôi cần biết lớp cuối cùng được thêm vào một phần tử (hoặc một tập hợp các phần tử) thì tôi sẽ theo dõi nó bằng các phương tiện khác. –

Trả lời

38

Giải pháp đơn giản nhất là sử dụng pop, truy cập phần tử cuối cùng trong mảng.

var lastClass = $('div').attr('class').split(' ').pop(); 

Lưu ý rằng pop cũng xóa phần tử khỏi mảng, nhưng vì bạn không làm bất kỳ điều gì khác, nên không có vấn đề gì.

+0

Giải pháp tuyệt vời! – Iladarsda

14
var classStr = $('div').attr('class'), 
    lastClass = classStr.substr(classStr.lastIndexOf(' ') + 1); 

DEMO

Như classStr chứa tên lớp ngăn cách bởi một đơn space, vì vậy lastIndexOf(' ') sẽ tìm thấy cuối cùng space và làm cho phân vùng từ đó và cung cấp cho bạn class tên cuối cùng.

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