jQuery - 针对Sibilings,父母,后代和其他家庭动物

时间:2013-02-11 08:25:57

标签: javascript jquery css-selectors siblings targeting

我有一个小的标记测试来切换div。

可以在此处找到(工作)模型:http://jsfiddle.net/obmerk99/d78aF/1/

问题是,我需要将隐藏/显示链接放在另一个div中,就像这里一样:

http://jsfiddle.net/obmerk99/d78aF/2/

..当我移动它时,它对我所有的努力都不起作用。

我试过了:

jQuery(this).next().next('.toggle').toggle('slow');

jQuery(this).next('.toggle').toggle('slow');

和其他许多人一样,但这只是反复试验 - 而我想了解这个家庭的东西(我猜我不是一个家庭成员,因为我的编码能力很差: - )

说到理解,在我的一次试验和错误中,我已经做到了:

http://jsfiddle.net/obmerk99/d78aF/5/

这不起作用,但添加一个小</br>突然使它工作。

http://jsfiddle.net/obmerk99/d78aF/4/

</br>标记是否被视为“兄弟”?

3 个答案:

答案 0 :(得分:4)

试试这个:http://jsfiddle.net/d78aF/6/

jQuery(this).siblings('.toggle').toggle('slow');

根据您的评论,您可以这样做:http://jsfiddle.net/d78aF/7/

jQuery(document).find('.toggle').toggle('slow');

新小提琴:http://jsfiddle.net/d78aF/8/

答案 1 :(得分:1)

  

</br>标记是否被视为&#34;兄弟&#34; ??

你自己不尝试什么?

<div id='firstEl'></div>
<br/>
<div></div>

<div id='siblings'></div>

然后在你的js代码中:

$(function(){
  $('#siblings').text($.makeArray($('#firstEl').siblings()).join(','));
});

结果:

[object HTMLBRElement],[object HTMLDivElement],[object HTMLDivElement]

您可以看到<br/>元素被视为兄弟姐妹

http://jsfiddle.net/EP5bj/

http://api.jquery.com/siblings/

答案 2 :(得分:0)

您可以考虑采用更具针对性的方法,在HTML标记中指定要隐藏的div。这是许多软件包的常见做法,例如jQuery Mobile。

http://jsfiddle.net/turiyag/R5sDr/

<p class="hider" for="banks">Hide the banks!</p>

$(".hider").click(function(e) {
    var id = $(this).attr("for");
    $("#" + id).hide("slow");
    log("Hiding #" + id);
});