使用jQuery,如果一个是h1
而另一个是p
,那么找到父元素的前两个子元素的最有效方法是什么。我的代码现在不能正常工作,我想用最佳实践来实现这一目标。
CSS
div > *{
display: none;
}
HTML
<div>
<h1>Heading</h1>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</div>
<div>
<h1>Heading</h1>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</div>
的Javascript
$('div h1').show();
$('div p:first-child').show();
编辑我实际上正在使用多个DIV。我认为这不会有所作为,但看起来我错了。
答案 0 :(得分:21)
尝试,
$('div').children().slice(0,2).show();
如果你有更多的1个div,请尝试如下,
$('div').each (function () {
$(this).children().slice(0,2).show();
});
答案 1 :(得分:5)
slice()
方法的替代方法:
$('div').children(':lt(2)').show()
(但我也推荐切片,特别是对于大型收藏品)
答案 2 :(得分:2)
$('div :lt(2)').show();
答案 3 :(得分:1)
$('div').children().slice(0, 2).show();
答案 4 :(得分:1)
答案 5 :(得分:1)
描述性选择器
$('div').find('h1:first, p:first').show();
这清楚地说明了您的意图以及您选择的元素。
答案 6 :(得分:1)
$('div p:first-child,div p:nth-child(2)').show();
答案 7 :(得分:0)
我认为您需要eq()
功能,如下所示:
$("div").children().eq(0); // first child
$("div").children().eq(1); // second child
答案 8 :(得分:0)
不确定为什么需要使用jQuery。
var firstChild = div.firstChild;
firstChild.style.display = 'initial';
firstChild.nextSibling.style.display = 'initial';