JQuery选择器 - 选择这个,不是吗?

时间:2010-05-11 08:38:01

标签: jquery jquery-selectors

我创建了一个令人惊讶的工作脚本。 (我没有做太多的JavaScript)

我所拥有的是div中列出的大量图像。这些图像是隐藏的。 JQuery获取图像的属性并将它们放入数组中。单击正文时,页面的背景图像会发生变化。这很好用。

然而,我现在有一个问题。有几个元素在点击时我不应该改变背景。

即导航,页脚和标题。如何创建一个选择器,使主体可以点击,但忽略对上面3个div的点击?

我当前的选择器,这是错误的。看起来像这样。

$("body").click (function() {

4 个答案:

答案 0 :(得分:2)

使用.not()方法或:not()选择器。例如:

使用not selector:

$('*:not(#footer, #nav, #caption)').click(function(){
    // to change background.
});

使用not()方法:

$('*').not('#footer, #nav, #caption').click(function(){
    // to change background.
});

答案 1 :(得分:1)

放手一搏:

$("body *:not(div#navigation *, div#this *, div#that *)")

书签this page。理想情况下,您应该将所有应该“激活”的项目包装在容器div中。

答案 2 :(得分:1)

作为例子

$("body:not(#navigation,#footer,.caption)").css("background-color","red");

结帐{/ 3}}了解此

答案 3 :(得分:1)

如果您只想要body,请尝试以下方法:

  $('body').click(function(e){    
    if (e.target.nodeName.toLowerCase() != 'body')
      return;
    else
      alert('Yeah! this is the body alright!')
  })

$('body').click(function(e){    
    if (e.target.nodeName.toLowerCase() == 'body')
      alert('Yeah! this is the body alright!')
  })

快速demo event.target