这是我的code:
<a href="javascript:void(0);" id="apri-menu">
<span>First</span>
<span style="display:none;">Second</span>
</a>
$('#apri-menu').click(function () {
$(this).find('span').first().hide().end().find('span').last().show();
$('#menu-nascosto').show();
});
点击我方面的链接以显示第二个范围,但似乎.end()
会让人感到痛苦。
我哪里错了?
答案 0 :(得分:4)
.end()
的作用是“将jQuery对象返回到先前的选择状态”。在您的示例中,修改匹配对象的最后一个操作是.first()
,因此.end()
将时间倒回到.find('span')
之后的时间。所以最终的结果就好像你写了
$(this).find('span').find('span').last().show();
...这显然不起作用,因为标记中没有嵌套的<span>
。
简单地摆脱第二个.find()
将解决问题。
答案 1 :(得分:1)
尝试以下方式。原因是@Jon说的。
$(this).find('span:first').hide().end().find('span:last').show();
答案 2 :(得分:0)
工作演示 http://jsfiddle.net/KqdJS/
您可以返回到父.end().parent()
,然后显示它,
您还可以查看上面的回复,希望这有助于:)
<强>码强>
$('#apri-menu').click(function () {
$(this).find('span').first().hide().end().parent().find('span').last().show();
$('#menu-nascosto').show();
});