Javascript 如何使用jQuery选择第一个孩子?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/5852452/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to select first child with jQuery?
提问by sameold
How do I select the first div in these divs (the one with id=div1
) using first child selectors?
如何id=div1
使用第一个子选择器选择这些 div 中的第一个 div(带有 的那个)?
<div class="alldivs">
<div class="onediv" id="div1">
</div>
<div class="onediv" id="div2">
</div>
<div class="onediv" id="div3">
</div>
</div>
回答by Roko C. Buljan
Try with: $('.onediv').eq(0)
尝试: $('.onediv').eq(0)
demo jsBin
演示jsBin
From the demo:Other examples of selectorsand methodstargeting the first LI
unside an UL
:
来自演示:针对第一个unside an的选择器和方法的其他示例:LI
UL
.eq()
Method:$('li').eq(0)
:eq()
selector:$('li:eq(0)')
.first()
Method$('li').first()
:first
selector:$('li:first')
:first-child
selector:$('li:first-child')
:lt()
selector:$('li:lt(1)')
:nth-child()
selector:$('li:nth-child(1)')
.eq()
方法:$('li').eq(0)
:eq()
选择器:$('li:eq(0)')
.first()
方法$('li').first()
:first
选择器:$('li:first')
:first-child
选择器:$('li:first-child')
:lt()
选择器:$('li:lt(1)')
:nth-child()
选择器:$('li:nth-child(1)')
jQ + JS:
QQ+JS:
you can also use [i]
to get the JS HTMLelement
indexout of the jQuery el. (array) collection like eg:
您还可以使用从 jQuery el 中[i]
获取 JSHTMLelement
索引。(数组)集合,例如:
$('li')[0]
now that you have the JS element representation you have to use JS native methods eg:
现在你有了 JS 元素表示,你必须使用 JS 原生方法,例如:
$('li')[0].className = 'active'; // Adds class "active" to the first LI in the DOM
or you can(don't - it's bad design) wrap it back into a jQuery object
或者你可以(不要 - 这是糟糕的设计)将它包装回一个 jQuery 对象
$( $('li')[0] ).addClass('active'); // Don't. Use .eq() instead
回答by Frederik Wordenskjold
$('div.alldivs :first-child');
Or you can just refer to the id directly:
或者你可以直接引用id:
$('#div1');
As suggested, you might be better of using the child selector:
根据建议,您可能最好使用子选择器:
$('div.alldivs > div:first-child')
If you dont haveto use first-child
, you could use :first
as also suggested, or $('div.alldivs').children(0)
.
如果您不必使用first-child
,您也可以:first
按照建议使用,或者 $('div.alldivs').children(0)
.
回答by alex
Use the :first-child
selector.
使用:first-child
选择器。
In your example...
在你的例子中...
$('div.alldivs div:first-child')
This will also match any first child descendents that meet the selection criteria.
这也将匹配符合选择标准的任何第一个子后代。
While
:first
matches only a single element, the:first-child
selector can match more than one: one for each parent. This is equivalent to:nth-child(1)
.
虽然
:first
只匹配单个元素,但:first-child
选择器可以匹配多个元素:每个父元素一个。这相当于:nth-child(1)
.
For the first matched only, use the :first
selector.
对于第一个匹配的唯一,使用:first
选择。
Alternatively, Felix Klingsuggested using the direct descendent selectorto get only direct children...
或者,Felix Kling建议使用直接后代选择器只获取直接子代...
$('div.alldivs > div:first-child')
回答by Prabhakar Undurthi
As @Roko mentioned you can do this in multiple ways.
正如@Roko 提到的,您可以通过多种方式做到这一点。
1.Using the jQuery first-child selector - SnoopCode
$(document).ready(function(){
$(".alldivs onediv:first-child").css("background-color","yellow");
}
Using jQuery eq Selector - SnoopCode
$( "body" ).find( "onediv" ).eq(1).addClass( "red" );
Using jQuery Id Selector - SnoopCode
$(document).ready(function(){ $("#div1").css("background-color: red;"); });
使用jQuery eq Selector - SnoopCode
$( "body" ).find( "onediv" ).eq(1).addClass( "red" );
$(document).ready(function(){ $("#div1").css("background-color: red;"); });
回答by Krishnamoorthy Acharya
Hi we can use default method "first" in jQuery
嗨,我们可以在 jQuery 中使用默认方法“first”
Here some examples:
这里有一些例子:
When you want to add class for first div
当您想为第一个 div 添加类时
$('.alldivs div').first().addClass('active');
When you want to change the remove the "onediv" class and add only to first child
当您想更改删除“onediv”类并仅添加到第一个孩子时
$('.alldivs div').removeClass('onediv').first().addClass('onediv');