当div有子节点时,jquery选择下一个div

时间:2010-03-22 21:36:42

标签: jquery jquery-selectors

我希望能够选择下一行的div(它不是子div或父div)更像是兄弟姐妹。然后我想从该div获取node_id并解析它。例如,下面我知道第一个的“NODE_ID”,所以我可以使用jquery选择器来获取node_ID,然后我想直接移动到那个DIV下面并检索那个DOD的NODE_ID,但我不知道ID或Node_id,所以我必须能够在没有选择器id的情况下到达下一个DIV ...在这种情况下,我想检索node_id值“74_3”并解析它。

这是HTML:

<div style="display: block;" id="71_2_sub_p_div" node_id="72_2">
    <span class="a_hand">
        <img src="../images/maximize.png"> &nbsp;Commercial
    </span>
</div>

<div style="display: block;" id="71_3_sub_p_div" node_id="74_3">
    <span onclick="toggle_display('75_4_sub_p_div');" class="a_hand">
           <img src="../images/maximize.png"> &nbsp;Apartments
    </span>
</div>

这是我用来获取已知NODE_ID的选择器:

$("div[node_id='72_2']")

我怎样才能在jquery中这样做?提前谢谢。

1 个答案:

答案 0 :(得分:6)

如果div是下一个兄弟,您可以使用.next()

$('div[node_id=72_2]').next(); // should be div#71_3_sub_p_div
$('div[node_id=72_2]').next().attr('node_id'); // should be '74_3'

如果还有其他兄弟姐妹,并且您只想找到<div node_id='...'>,那么您可能会变得更复杂一些:

$('div[node_id=72_2]').nextAll('div[node_id]').eq(0).attr('node_id') 
// also '74_3'

查看所有下一个使用node_id属性查找div的兄弟姐妹,使用.eq()将匹配减少到单个项目,然后返回它的node_id属性。