什么是合适的选择器:not $(this)

  • 本文关键字:not this 选择器 jquery
  • 更新时间 :
  • 英文 :


上面的黄色链接没有提供解决方案。正确答案是.siblings()它不在任何链接的解决方案中

我正在尝试选择所有td元素,除了作为$(this)传递的元素。正确的方法是什么?

我不认为以下工作:

$(this).find(':not')

..因为我正在寻找与 $(this) 相同的 DOM 级别的所有内容。

<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script type="text/javascript">
      $(document).ready(function() {
        
        $('a').click(function() {
          alert($(this).text());
        });
        
      });
    </script>
  </head>
  <body>
    
    <a>Apples</a><br />
    <a>Bananas</a><br />
    <a>Oranges</a><br />
    
  </body>
</html>

只是说明这一点是为了清楚地表明我正在寻找一个通用的解决方案,而不是特定于此示例的解决方案。 :)

使用 .not() 方法排除以前的 jQuery 选择。你可以向它传递一个选择器,也可以传递给一个现有的元素或jQuery对象。

var others = $('td').not(this);

$('td').on('click', function() {
      $(this).css('color', 'red')
      $('td').not(this).css('color', 'blue');
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr><td>Cell1</td><td>Cell2</td></tr>
  <tr><td>Cell3</td><td>Cell4</td></tr>
  <tr><td>Cell5</td><td>Cell5</td></tr>
</table>

jQuery.not() 引用

看到您的更新和各种评论后,我开始认为您只想得到this的兄弟姐妹。如果你只想要一个元素的同级,请使用jQuery的同级()函数。此函数可以选择接受选择器以仅获取特定的同级。无论如何,兄弟姐妹隐式地排除了this本身。

$('td').on('click', function() {
      $(this).css('color', 'red')
      $(this).siblings().css('color', 'blue');
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr><td>Cell1</td><td>Cell2</td></tr>
  <tr><td>Cell3</td><td>Cell4</td></tr>
  <tr><td>Cell5</td><td>Cell5</td></tr>
</table>

最新更新