我有一个无序列表,列表项包含图像链接。我的代码目前遍历列表项,获取href
,在div banner-holder
中创建一个新的图像容器,并添加src
属性。
我想要做的是跳过第一个列表项,因为我已经在banner-holder
中拥有该图像,我不想再添加它两次。
谢谢。
$('li').each(function ()
{
var bigImage = $(this).find('a.main-img').attr('href');
$('<img/>').attr('src', bigImage).appendTo('#banner-holder');
});
答案 0 :(得分:6)
$('ul li').not(':first-child').each(function ()
{
var bigImage = $(this).find('a.main-img').attr('href');
$('<img/>').attr('src', bigImage).appendTo('#banner-holder');
});
答案 1 :(得分:2)
jQuery each
method传递当前项的索引,因此您可以使用:
$('li').each(function (index)
{
if (index > 0) {
var bigImage = $(this).find('a.main-img').attr('href');
$('<img/>').attr('src', bigImage).appendTo('#banner-holder');
}
});
或者,您可以使用gt
selector:
$('li:gt(0)').each(function() {
...
});
当前jQuery documentation有关于gt
选择器的说明:
因为:gt()是一个jQuery扩展而不是CSS的一部分 规范,查询使用:gt()无法利用 本机DOM querySelectorAll()提供的性能提升 方法。要在现代浏览器中获得更好的性能,请使 $(“your-pure-css-selector”)。切片(索引)代替。
答案 2 :(得分:1)
$('li:not(:first-child)').each(function ()
{
var bigImage = $(this).find('a.main-img').attr('href');
$('<img/>').attr('src', bigImage).appendTo('#banner-holder');
});
我没有测试过这个,但我认为它会起作用。