上面的黄色链接没有提供解决方案。正确答案是.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>