jQuery只切换一个元素,而不是所有元素
jQuery toggle only one element instead of all
我有代码,使用jQuery滑动切换显示和隐藏特定的列表。我想点击一个加/减按钮来执行事件。但每次我尝试使用a.minuslink
或a > img
或.minusimg
-我不能得到任何选择器工作,除了ul。有人能帮帮我吗?谢谢!
:
$("#xmlDiv").on("click", "ul", function(e) {
var clickedUl = $(this);
//alert(this);
clickedUl.children().find(".mainlist").slideToggle('slow', function() {
var img = clickedUl.find('span.minus img');
if (img.attr('src') === 'images/plus.png')
img.attr('src', "images/minus.png");
else
img.attr('src', "images/plus.png");
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="xmlDiv">
<ul class="section">
<li class="root">
<div class="minus">
<a href="#" class="minuslink">
<img src="images/minus.png" class="minusimg">
</a>
</div>Antivirus Compliance - <a href="../xml/xml/1 - Sample AV.xml">Download</a>
<ul class="mainlist" style="margin-left: -25px; display: block;">
<li class="desc"> <span style="color:#e4e4e4;">-</span> <span class="desc_span" tooltip="Antivirus is not installed.">AV Not Installed</span>
</li>
<li class="desc"> <span style="color:#e4e4e4;">-</span> <span class="desc_span" tooltip="Antivirus is not running.">AV Not Running</span>
</li>
<li class="desc"> <span style="color:#e4e4e4;">-</span> <span class="desc_span" tooltip="Antivirus is not updated.">AV Not Updated</span>
</li>
<li class="desc"> <span style="color:#e4e4e4;">-</span> <span class="desc_span" tooltip="">Compliant</span>
</li>
</ul>
</li>
</ul>
我的JQUERY:
$("#xmlDiv").on("click", "ul", function(e) {
var clickedUl = $(this);
//alert(this);
clickedUl.children().find(".mainlist").slideToggle('slow', function () {
var img = clickedUl.find('span.minus img');
if(img.attr('src') === 'images/plus.png')
img.attr('src', "images/minus.png");
else
img.attr('src', "images/plus.png");
});
});
如果我正确理解你的问题,问题很可能是从链接到.mainlist
的遍历。一种方法是:$this.parent().siblings('.mainlist')
$("#xmlDiv div.minus").click( function(e) {
var $this = $(this);
$this.siblings('.mainlist').slideToggle('slow', function() {
var img = $this.find('img');
if (img.attr('src') === 'images/plus.png')
img.attr('src', "images/minus.png");
else
img.attr('src', "images/plus.png");
});
});
小提琴
edit:修改点击以附加到'。减去'div,基本相同,但不需要parent()
相关文章:
- 使用clickToggle并在单击另一个元素时关闭元素
- 表追加而不附加最后一个元素
- 滚动到容器中的下一个元素-几乎到了
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 按我自己的类克隆另一个元素的内容和顺序
- Javascript获取上一个元素的内容
- 如何通过HTML+CSS中的另一个元素Selector更改元素的属性值
- 在数组中的一个元素上设置多个值
- 指令的模板必须只有一个根元素:With restrict E&替换true
- HTML JavaScript,我如何能够通过给每个元素一个不同的Id来使用JavaScript使这个函数工作
- 如何创建一个独立的 DOM 元素?一个不从父母那里继承 css 等
- 如何给图像元素一个“;选择“;使用Raphael.js查看
- 如何显示隐藏的
- 元素一个接一个或全部同时
- 使用"span"创建一个自定义的基于web的文本编辑器;元素——一个坏主意
- 引导旋转木马传递元素一个接一个
- 给所有元素一个匹配数组内容的ID
- 我如何得到Json数组元素一个接一个的jquery上不同的id'
- 一次淡入附加元素一个
- 如何使用AngularJS检索外部网站的内容(一个元素一个元素)