如何悬停所有元素,但避免一些?

时间:2016-11-10 22:10:29

标签: javascript jquery

我需要能够悬停元素但不是全部。在这种情况下,我尝试了所有但不是表。

$(".modal-content *:not("table")").on("mouseenter", function() {...

更新

我有一个错字,接受答案。

3 个答案:

答案 0 :(得分:1)

引号出错。试试这个。

$(".modal-content *:not(table)").on("mouseenter", function() {...

答案 1 :(得分:1)

您不需要围绕“表格”这个词的引号。根本......选择器应该是:

.modal-content *:not(table)

就这么清楚,选择器意味着"所有元素都是一个元素的后代,其className为' .modal-content'但不是表格元素。

P.S。 - 如果你只是为元素添加视觉效果,你应该使用纯CSS而不是jQuery。例如,要在悬停时将元素变为红色:

.modal-content *:not(table):hover {
   background-color: red;
}

答案 2 :(得分:0)

这里你去(悬停时变成红色):

$('.modal-content')
  .on('mouseenter', '*:not(table,table *)', function (e) {
    $(this).css({ backgroundColor: 'red' })
  })
  .on('mouseleave', '*:not(table,table *)', function (e) {
    $(this).css({ backgroundColor: 'initial' })
  });

jsFiddle:https://jsfiddle.net/o9nj2saf/1/