使用next()删除背景图像;和prev();在菜单中的jquery

时间:2011-01-30 14:43:53

标签: jquery

我想在<a>之前和之后删除a.current中的背景图片 所以在下面的例子中,“草药”链接不会有“费用”。

<ul>
    <li class="home"><a href="#">Home</a></li>
    <li class="history"><a href="#">History</a></li>
    <li class="the-herbs"><a href="#">The Herbs</a></li>
    <li class="blog current"><a class="current" href="#">Blog</a></li>
    <li class="fees"><a href="#">Fees</a></li>
    <li class="contact"><a href="#">Contact</a></li>
   </ul>

我一直在尝试使用jquery下一个和之前的但是不太明白......

$(document).ready(function() {

    $('li.current a').parent.prev().css('background', 'none');

});

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

首先,我认为jQuery对象上没有'parent'属性,但是有'parent()'函数。此外,您需要从'a'中删除背景,而不是从'li'中删除背景,因此它应该是:

 $('li.current a').parent().prev().children('a').css('background', 'none');

答案 1 :(得分:0)

您不应该使用parent()。来自上一页

的文档
  

获取匹配元素集中每个元素的前一个兄弟,可选择由选择器过滤。

所以,它应该是这样的:

$('li.current a').prev().css('background', 'none');
$('li.current a').next().css('background', 'none');

答案 2 :(得分:0)

您要在<li>之前和之后立即定位.current,但指定了错误的属性。尝试使用backgroundImage代替background删除背景图片。