3

我有这个:

<div ><a href='#' id='my_target'>Link</a></div>
<div></div>
<div><div></div></div>
<div><div id='my_div'></div></div>

#my_target当事件触发时,我该如何选择my_div

我尝试了诸如 之类的东西prev().prev().prev().children(),但我无法让它工作,我想要更高效的东西。

4

2 回答 2

3

或者,您也可以只使用相对路径: HTML:

<div><a href='#' id='my_target'>Link</a></div>
<div></div>
<div><div></div></div>
<div><div id='my_div'></div></div>

JS:

$(document).ready(function() {
    console.log($("#my_div").parent().parent().children(':first'));
});

JSFiddle:http: //jsfiddle.net/5Bf6g/

于 2012-04-07T14:32:58.570 回答
2

我是这样做的:

​var md = $("#my_div");​​​​​​​​​
var anchor = $(md.parent().prevAll().last().find("a"));
console.log(anchor);

JSFiddle:http: //jsfiddle.net/t9HZz/

prevAll()抓取所有父母的兄弟姐妹,然后我们抓取最后一个 withlast()因为它以相反的顺序添加兄弟姐妹,然后我们可以从那里找到链接。

尽管在您的示例中,该链接确实有一个 id,因此您可以$("#my_target")在此特定示例中执行此操作。

于 2012-04-07T14:37:11.893 回答