Javascript 找到每个div的第一段
我试图在Javascript 找到每个div的第一段,javascript,jquery,html,Javascript,Jquery,Html,我试图在.index 但他们似乎只得到了文档中的第一段,而不是每一篇文章的第一段 是否有人知道解决方案,并解释为什么这不起作用? 找到与.index.post匹配的所有元素,并为每个元素找到第一段并附加到其上: $('.index .post').each( function(){ $( 'p:first', this ).append( '...' ); } ); 具有单个选择器的版本为: $('.index .post p:first-child').append('...');
.index
但他们似乎只得到了文档中的第一段,而不是每一篇文章的第一段
是否有人知道解决方案,并解释为什么这不起作用?
找到与.index.post
匹配的所有元素,并为每个元素找到第一段并附加到其上:
$('.index .post').each( function(){
$( 'p:first', this ).append( '...' );
} );
具有单个选择器的版本为:
$('.index .post p:first-child').append('...');
- 伪类只匹配单个元素(DOM层次结构中的第一个元素)
- 为其每个父级查找第一个匹配项
.index.post
匹配的所有元素,并为每个元素找到第一段并附加到其上:
$('.index .post').each( function(){
$( 'p:first', this ).append( '...' );
} );
具有单个选择器的版本为:
$('.index .post p:first-child').append('...');
- 伪类只匹配单个元素(DOM层次结构中的第一个元素)
- 为其每个父级查找第一个匹配项
:first child
而不是:first
$('.index .post p:first-child').each(function () {
$(this).append('...');
});
仅匹配单个元素,选择器可以匹配多个元素:每个父元素一个
您需要使用
:first child
而不是:first
$('.index .post p:first-child').each(function () {
$(this).append('...');
});
仅匹配单个元素,选择器可以匹配多个元素:每个父元素一个
我会尝试以下方法:
$('.index .post').each(function(){
$(this).find('p:first').append('my text to append');
});
我想尝试一下:
$('.index .post').each(function(){
$(this).find('p:first').append('my text to append');
});
我的答案是@Sachin提供的答案的变体 您应该使用类型伪类的
:first。这样,即使.post
的第一个子元素是
,它仍然会选择第一个
元素
$('.index .post p:first-of-type').each(function () {
$(this).append('...');
});
这是一个有效的演示:
阅读更多关于CSS技巧的信息。我的答案是@Sachin提供的答案的变体
您应该使用类型
伪类的:first。这样,即使.post
的第一个子元素是
,它仍然会选择第一个
元素
$('.index .post p:first-of-type').each(function () {
$(this).append('...');
});
这是一个有效的演示:
阅读更多关于CSS技巧的信息。如果您尝试在控制台中通过jquery进行选择,您将看到返回的数组中只有第一段,因为您正在过滤它。
你可以这样做,我认为它更具可读性。你做了一个全面的分析,每一篇文章你都会找到第一段并附加“…”
$('.index .post').each(function(){
$(this).find('p:first').append('...');
})
如果您尝试在控制台中通过jquery进行选择,您将看到返回的数组中只有第一段,因为您正在筛选它。
你可以这样做,我认为它更具可读性。你做了一个全面的分析,每一篇文章你都会找到第一段并附加“…”
$('.index .post').each(function(){
$(this).find('p:first').append('...');
})
:第一只会得到第一只。您需要每个的第一个子项。$('.index.post p:first child')
如@KevinB所说,使用。$('.index.post p:first of type')
是最好的。看我的答案:第一只会得到第一只。您需要每个的第一个子项。$('.index.post p:first child')
如@KevinB所说,使用。$('.index.post p:first of type')
是最好的。看看我的答案。谢谢。它们之间有什么区别?@tmyie First将选择集合中的第一个元素。第一个孩子将通过选择第一个孩子进行收集。谢谢。它们之间有什么区别?@tmyie First将选择集合中的第一个元素。第一个孩子将通过选择第一个孩子进行收集。谢谢。$('p:first',this)
和`$('.index.post p:first')之间有什么区别?伪类将只匹配单个元素(第一个要匹配的元素)。因此'.index.post p:first'
将查找与选择器'.index.post p'
匹配的第一个元素,而不管有多少匹配项.index.post
可以匹配多个元素,然后您可以在每个匹配中查找:第一个段落元素。谢谢。$('p:first',this)
和`$('.index.post p:first')之间有什么区别?伪类将只匹配单个元素(第一个要匹配的元素)。因此'.index.post p:first'
将查找与选择器'.index.post p'
匹配的第一个元素,而不管有多少匹配项.index.post
可以匹配多个元素,然后可以在每个匹配中查找:第一个段落元素。