2013-07-14 58 views
-1

我有一个DOM结构这样导航DOM树(标签类格)与jQuery

div id=1 
    div id=2 
    div class=a 
     label 

    div id=3 

    div id=4 
    span class=aa 
    span class=bb 
    span class=cc 

现在,在“标签”的电话,我想改变“CC”的CSS类;我想通过DOM树访问它,因为“id = 1”div迭代了N次:我如何使用jquery访问“cc”?

谢谢!

回答

0

假设你在上label事件处理程序的意思是,你可以用它来parent().parent().parent().find(".cc"),像这样:

$("selector for the label").click(function() { 
    var cc = $(this).parent().parent().parent().find(".cc"); 
    // ... 
}); 

如果你能一类可能添加到顶层的div(与id=1) ,这将是清洁:

$("selector for the label").click(function() { 
    var cc = $(this).closest(".top-level").find(".cc"); 
    // ... 
}); 

从下面的评论:

它与我的情况有点不同:标签有一个onClick函数,它调用jquery-ajax调用;在ajax响应我不得不调用更改CSS函数。

在标记使用onxyz属性是相当老套,但你仍然可以使用它,如果你喜欢,只要确保你传递this到函数调用:

<label onclick="doSomething(this)">...</label> 

function doSomething(label) { 
    var cc = $(label).parent().parent().parent().find(".cc"); 
    $.ajax({ 
     /*...misc params...*/ 
     success: function() { 
      cc.css(/*....*/); 
     } 
    }); 
} 
+0

Downvoter:难道我误解了这个问题或什么?这不是像上述不工作:http://jsbin.com/eyejuk/1([来源](http://jsbin.com/eyejuk/1/edit))。 *编辑*:哦,我现在看到时机,只是一个恶意的downvote,而不是基于答案的内容。 *叹息* –

+0

它与我的情况有点不同: 标签有一个onClick函数,它调用jquery-ajax调用;在ajax响应我不得不调用更改CSS函数。我尝试使用以下方法: label - > onClick = myFunction(this); ajax - > success - > myFunction(label){var cc = label.parent()。parent()。parent()。find(“。cc”); } 但在ajax调用后,我收到“label.parent不是函数”错误。任何人? –

+0

@SotirisAkisMitracos:在你的问题中提到这一点很有用。我已经添加了一些答案。 –