你怎么知道当前元素是不是第一个孩子?
它应该与$(this)
一起使用,例如:
$("li").click(function(e) {
if (/* $(this) is not the first-child */)
{
/* do something */
}
});
答案 0 :(得分:57)
如果元素是第一个孩子,您可以这样做来测试元素:$(this).is(':first-child')
。其他选择器如:last-child
也可以使用。
答案 1 :(得分:28)
您可以简单地询问其.index()
位置(相对于其兄弟姐妹)。
$(this).index(); // returns a zero based index position
答案 2 :(得分:10)
答案 3 :(得分:4)
如果你想选择除第一个孩子以外的所有东西,这是怎么做的:
$('#some-parent').children().not(':first')
答案 4 :(得分:4)
此外,您可以检查是否已定义$(this).prev().length
,例如:
if (!$(this).prev().length){ //This means $(this is the first child
//do stuff
}
答案 5 :(得分:3)
检查索引
$(this).index() == 0 // is first
答案 6 :(得分:1)
保持简单,使用DOM
$("li").click(function(e) {
if (this.previousSibling != null)
{
/* do something */
}
});
答案 7 :(得分:1)
对于希望使用普通JS解决方案的人:
<div id="parent">
<div id="child-1"></div>
<div id="child-2"></div>
<div id="child-3"></div>
</div>
let element = document.getElementById('child-1');
console.log(element.parentElement.firstElementChild === element); // true
console.log(element.parentElement.lastElementChild === element); // false
element = document.getElementById('child-2');
console.log(element.parentElement.firstElementChild === element); // false
console.log(element.parentElement.lastElementChild === element); // false
element = document.getElementById('child-3');
console.log(element.parentElement.firstElementChild === element); // false
console.log(element.parentElement.lastElementChild === element); // true
这不是最优雅的事情,但是可以完成工作。
您甚至可以相同的方式检查它是否是第n个元素。
let n = 2; // check if it's the 2nd child
let element = document.getElementById('child-2');
// index starts at 0
console.log(element.parentElement.children[-1 + n] === element); // true
答案 8 :(得分:0)
$(this).not(':first');
答案 9 :(得分:0)
$("li").click(function(e) {
if ($(this).index != 0 )
{
/* do something */
}
});