-1

我有这样的 DOM 结构

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”?

谢谢你!!

4

1 回答 1

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(/*....*/);
        }
    });
}
于 2013-07-14T19:01:39.890 回答