如何检查元素是否不是第一个子元素?
如何知道当前元素是否不是第一个子元素?
它应该与 $(this)
一起使用,例如:
$("li").click(function(e) {
if (/* $(this) is not the first-child */)
{
/* do something */
}
});
How do you know if the current element is not the first-child?
It should work with $(this)
, for example:
$("li").click(function(e) {
if (/* $(this) is not the first-child */)
{
/* do something */
}
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
您可以这样做只是为了测试某个元素是否是第一个子元素:
$(this).is(':first-child')
。其他选择器如:last-child
也可以工作。You can do this just to test an element if it's the first child:
$(this).is(':first-child')
. Other selectors like:last-child
would work too.您可以简单地询问其
.index()
位置(相对于其兄弟姐妹)。You could simply ask for its
.index()
position (relative to its siblings).对于
#thing
中所有非第一个子元素的li
:请参阅 http://api.jquery.com/not-selector/
For all
li
's in#thing
that aren't first child:see http://api.jquery.com/not-selector/
另外,您可以检查是否定义了
$(this).prev().length
,如下所示:Also, you can check if
$(this).prev().length
is defined, like in:如果您想选择除第一个子项之外的所有项,请按以下步骤操作:
If you would like to select everything except the first child, this is how to do it:
检查索引
Check the index
保持简单,使用 DOM
Keep it simple, use the DOM
对于想要普通 JS 解决方案的人来说:
这不是最优雅的东西,但它可以完成工作。
您甚至可以以相同的方式检查它是否是第 n 个元素。
For people who want a vanilla JS solution:
It's not the most elegant thing but it gets the job done.
You can even check if it's the nth element in the same fashion.
jQuery .not()
jQuery .not()
实现此目的的一种不太复杂(兼容 IE 9)的纯 JavaScript 方法是使用
Element
的matches
函数。请参阅 https://developer.mozilla.org/en-US /docs/Web/API/Element/matches示例:
A less complex (IE 9 compatible) pure/vanilla JavaScript way to achieve this is to use the
matches
function ofElement
. See https://developer.mozilla.org/en-US/docs/Web/API/Element/matchesExample: