Jquery 如何更改背景图像?
这听起来很容易做到,但我似乎无法做到。其思想是,当单击“a”标记时,检查它是否有一个名为“collapsed”的类。如果是,请更改“ul”背景(a标签是其一部分)。我不知道点击了哪个“a”标签,所以我不知道它是“ul”的一部分的id。。。我想我可以钻出来找到父母的“ul”,但它不起作用 HTML:Jquery 如何更改背景图像?,jquery,html,css,Jquery,Html,Css,这听起来很容易做到,但我似乎无法做到。其思想是,当单击“a”标记时,检查它是否有一个名为“collapsed”的类。如果是,请更改“ul”背景(a标签是其一部分)。我不知道点击了哪个“a”标签,所以我不知道它是“ul”的一部分的id。。。我想我可以钻出来找到父母的“ul”,但它不起作用 HTML: <ul class="some-class" id="some-id-1"> <a href="#" id="id-1">something</a>
<ul class="some-class" id="some-id-1">
<a href="#" id="id-1">something</a>
<li>
<a class="collapsed">something else</a>
</li>
</ul>
<ul class="some-class" id="some-id-2">
<a href="#" id="id-2">something</a>
<li>
<a class="collapsed">something else</a>
</li>
</ul>
<ul class="some-class" id="some-id-3">
<a href="#" id="id-3">something</a>
<li>
<a class="collapsed">something else</a>
</li>
</ul>
我做错了什么?欢迎您提出任何建议……尝试以这种方式使用JQuery函数-
$('a').click(function() {
var cName = $(this).attr('class');
if(cName == 'collapsed') {
$(this).closest('ul').css('background','url(img/red.png) 0 0');
};
});
首先,
this
应该像$(this)
一样使用
JQuery就是你做错的地方。@Anonymous,这种评论对任何人都没有帮助。如果JQuery不是最好的解决方案,那么提供一个替代选项怎么样?我只是建议他使用常规JavaScript使代码更具可读性。“就这些了。”杰森,谢谢你。我想我不需要再说了,我们可能在想同一件事;o) @Anonymous这是一个答案,下面有一个详细的(建设性的)例子。是的!天才!太棒了!谢谢o)
$('a').click(function() {
var cName = $(this).attr('class');
if(cName == 'collapsed') {
$(this).closest('ul').css('background','url(img/red.png) 0 0');
};
});
$('a').click(function() {
// Change the first .collapsed element next to the clicked a
$(this).next('.collapsed').css('background-color', 'url(img/red.png) 0 0');
});