2012-03-17 34 views
6

Tôi cần xóa lớp học khỏi tất cả các ô bảng khi cha mẹ của phần tử có một ID cụ thể.Kiểm tra xem ID có bằng

$(".closethis").click(function(){ 
    var $this = $(this).parent().parent(); 
    if ($this.attr("id") == "mainArea") { 
     $("#myTbl").removeClass("myClass"); 
    } 
}); 

Tôi cần kiểm tra ID vì đây là một phần của hàm và nếu ID không bằng giá trị này, có thể là trường hợp khác.

Có vẻ đúng nhưng có vẻ như nó không hoạt động. Tui bỏ lỡ điều gì vậy?

+1

Bạn nên giới thiệu bản trình diễn. Và bạn có ý nghĩa gì bởi '$ (" #. MyTbl ")', nó là một lỗi đánh máy? – xdazz

+1

Vui lòng đăng HTML của bạn. Điều này không đúng: '$ (" #. MyTbl ")' Có thể là $ ("# myTbl td")? – Smamatti

+0

Nếu bạn cần cha mẹ của một phần tử tại sao bạn làm cha mẹ(). Parent()? Nếu bạn đăng một số html, hoặc tốt hơn nhưng tạo ra một jsFiddle, nó sẽ giúp đỡ. –

Trả lời

8

Hmm .. Ok .. $ var trông giống như PHP .. tôi chỉ gọi nó là vậy. Ngoài ra, bạn có #. trong myTbl của bạn có nghĩa là id và class .... vì vậy nó phụ thuộc vào cách bạn đang xác định các tế bào .. nhưng giả định các tế bào được td của bên trong một bảng ID'd "myTbl", hãy thử này

$(".closethis").click(function(){ 
    var checkDiv = $(this).parent().parent(); 
    if (checkDiv.attr("id") == "mainArea") { 
     $("#myTbl").find('td').removeClass("myClass"); 
    } 
}); 

Nếu bạn không thể thực hiện công việc đó, cung cấp cho chúng tôi ID hoặc lớp của mỗi phần tử và chúng tôi có thể cung cấp cho bạn mã chính xác.

+5

Đưa' $ 'vào trước biến là một quy ước sử dụng để chỉ định biến chứa đối tượng jQuery. Nó không liên quan gì tới PHP. –

9

Hãy thử sử dụng hàm is có trong jQuery.

if ($this.is('#mainArea')) { ... } 
Các vấn đề liên quan