Jquery基于元素的父标记执行操作

时间:2012-08-01 09:46:43

标签: javascript jquery html jquery-selectors

我有以下内容:

<ul class="head clearfix">\
    <li class=""><strong><a href="/firmy" class="menuTabs">Katalog firm <span>(3516)</span></a></strong></li>
    <li class=""><a href="/produkty" class="menuTabs">Katalog produktów <span>(23752)</span></a></li>
    <li class=""><a href="/uslugi" class="menuTabs">Katalog uslug <span>(81)</span></a></li>
    <li class="last"><a href="/szkolenia" class="menuTabs">Katalog szkolen <span>(529)</span></a></li>
</ul>

我只需要对没有<strong>标记作为父级的链接执行鼠标悬停效果。所以在上面的例子中我会跳过&#34; Katalog公司&#34;链接,因为那个标签为父。

感谢

7 个答案:

答案 0 :(得分:2)

你的css选择器将是

ul.header > li > a.menuTabs:hover

定义悬停效果

如果你需要一些jquery功能,你可以使用

$('ul.header > li > a.menuTabs')

获取这些元素

答案 1 :(得分:1)

这只能通过使用直接子选择器>

在CSS中定义
ul.head > li > a.menuTabs:hover 
{
   /* hover style */
}

您可以在jquery中使用相同的选择器

$('ul.head > li > a.menuTabs')

答案 2 :(得分:1)

只需从选择器中过滤掉具有强标记的父元素,然后附加鼠标事件:

​$('ul.head li a')​.filter(function() {
    return !$(this).parent().is('strong');
}).on('mouseenter', function() {
    $(this).css('color','green');
});​

FIDDLE

答案 3 :(得分:0)

$('.head').on('click', 'li > a', function(evt) {
    //do something
});

答案 4 :(得分:0)

我建议,作为替代使用更具体的选择器(在大多数情况下可能是更好的选项)检查mouseover事件中的父元素:

$('a').on('mouseover', function(e){
    var that = this;
    if ($(that).parent().is('strong')) {
        return false;
    }
    else {
        // do stuff.
    }
});

答案 5 :(得分:0)

$('.head > li > .menuTabs').mouseover(fucnction () {
  // code here
});

答案 6 :(得分:0)

请这样使用。

ul li>a:hover
{
background-color:black;
}​