jQuery切换仅适用于<ul>
jQuery toggle only working for the top element in the <ul>
我正在尝试在Rails 3.2.1应用程序中实现jQuery切换项。
我希望切换适用于<ul>
上的每个单独的<li>
项目,这样我就可以针对要单独隐藏/显示的元素。但由于某些原因,只有顶部元素具有切换效果;其他人没有回应。
这是jsFiddle。
有人能解释为什么会发生这种事吗?
这是因为您的div
都有相同的id
,这是无效的HTML。由于DOM只期望有一个元素具有任何给定的ID,因此在编写$("#trigger")
时,它只选择找到的第一个元素。将ID更改为类。
<div class="trigger"> ...
并将ID选择器更改为类选择器。
$('.trigger').click(/* ... */);
jsFiddle
ID属性在页面上必须是唯一的。将所有id="trigger"更改为class="trigger",然后尝试:
$(".trigger").click(function (){
$(this).find('.menu-item').toggle();
});
JSFIDDLE
$(".trigger").click('.menu-item', function () {
$(".menu-item", this).toggle();
});
具有相同id的多个元素是无效的HTML,jQuery将只针对它找到的具有该id的第一个元素。
我更新了你的小提琴使用类而不是id
<div id="trigger" class="trigger">
然后:
$(".trigger").click(function (){
$(".menu-item", this).toggle();
});
以类而非id为目标。
为什么元素具有相同的id
s?ID应该是唯一的。如果要选择所有<li>
,请使用类似$(".toggle-li")
的CSS选择器。
相关文章:
- 如何附加<ul><李>元素位于某个特定条件的父元素列表之间
- 在验证器中添加自定义规则以检查<ul>具有元素
- 将OnClick函数设置为<ul>,最后一个ul是擦除第一个ul-s
- 排序<李><Ul>根据<span>内部<李>
- CSS/.JS问题,<ul><李>在Megamenu中
- 如何附加<李>至<ul>使用可拖动和可丢弃
- 如何将逗号分隔的列表转换为<ul>列表
- Nav<ul>mouseout吗?如何修复
- Jquery将css类添加到父级<ul>元素
- 如何将Array转换为<ul><李>以字母为标题的字母列表
- 注入html标记<ul></ul>在我的<李></李>元素
- 如何移除<灯>在& lt; ul>我是通过jQuery添加的
- 添加<光照>& lt; ul>从javascript
- & lt; li>带着孩子
- 从& lt; ul>< light >的子元素
- 使用& lt; ul>用于导航(不能记住状态)
- 移除& lt; LI>从& lt; UL>点击使用jQuery
- & lt; UL>菜单在单一的文件,然后调用它在所有的HTML网页
- 找到& lt; ul>基于< light >的文本
- 如何将json数据显示为html<ul><李></李></ul>在asp.net中
- & lt; ul>不是坍塌,只是延伸