这是我到目前为止所做的:
<script>
$(document).ready(function(){
$(".entry-content img:first").addClass('postimage');
});
</script>
正如您所看到的,对于.entry-content的第一张图片,它会添加我的课程。很酷,这很好用。 Uncool,它不适用于每个帖子,但只适用于页面上的第一个。
我不知道如何解决这个问题。我是否需要以某种方式使用.each或者我已经有什么问题了?
由于
答案 0 :(得分:1)
这是因为CSS选择器正在选择第一个.entry-content img
,而不是每个img
中的第一个.entry-content
。这是关于运算符优先级的。
您可以遍历每个.entry-content
并手动选择该节点中的img:first
。
$(document).ready(function(){
var entries = document.querySelectorAll('.entry-content');
for (var i = 0; i < entries.length; i++) {
var firstImage = $(entries[i].querySelectorAll('img:first')[0]);
firstImage.addClass('postImage');
}
});
答案 1 :(得分:0)
这将遍历您的所有帖子并将该类应用于每个帖子中的第一个图像。
$.each('.entry-content', function() {
$(this).find('img:first').addClass('postImage');
});
答案 2 :(得分:0)
Paul Dragoonis的一个变种回答:
$(".entry-content").each(function ()
{
$("img:first", this).addClass("postImage");
});