如何从jQuery选择器中排除$(this)?

时间:2009-01-13 04:30:16

标签: jquery jquery-selectors this

我有这样的事情:

<div class="content">
    <a href="#">A</a>
</div>
<div class="content">
    <a href="#">B</a>
</div>
<div class="content">
    <a href="#">C</a>
</div>

单击其中一个链接时,我想在未单击的链接上执行.hide()函数。我理解jQuery有:not选择器,但在这种情况下我无法弄清楚如何使用它因为我需要使用$(".content a")

选择链接

我想做点什么

$(".content a").click(function()
{
    $(".content a:not(this)").hide("slow");
});

但在这种情况下,我无法弄清楚如何正确使用:not selector。

4 个答案:

答案 0 :(得分:372)

尝试使用not() method代替:not() selector

$(".content a").click(function() {
    $(".content a").not(this).hide("slow");
});

答案 1 :(得分:41)

您可以使用not功能而不是:not选择器:

$(".content a").not(this).hide("slow")

答案 2 :(得分:9)

您还可以使用jQuery .siblings()方法:

<强> HTML

<div class="content">
  <a href="#">A</a>
  <a href="#">B</a>
  <a href="#">C</a>
</div>

<强>的Javascript

$(".content").on('click', 'a', function(e) {
  e.preventDefault();
  $(this).siblings().hide('slow');
});

工作演示:http://jsfiddle.net/wTm5f/

答案 3 :(得分:5)

你应该使用&#34;兄弟姐妹()&#34;方法,并防止运行&#34; .content a&#34;选择一遍又一遍只是为了应用这种效果:

<强> HTML

<div class="content">
    <a href="#">A</a>
</div>
<div class="content">
    <a href="#">B</a>
</div>
<div class="content">
    <a href="#">C</a>
</div>

<强> CSS

.content {
    background-color:red;
    margin:10px;
}
.content.other {
    background-color:yellow;
}

<强>的Javascript

$(".content a").click(function() {
  var current = $(this).parent();
  current.removeClass('other')
    .siblings()
    .addClass('other');
});

见这里:http://jsfiddle.net/3bzLV/1/