迭代无序列表时跳过第一个列表项。JQuery
我有一个无序列表,其中列表项包含指向图像的链接。“我的代码”当前迭代列表项,获取迭代无序列表时跳过第一个列表项。JQuery,jquery,image,function,html-lists,Jquery,Image,Function,Html Lists,我有一个无序列表,其中列表项包含指向图像的链接。“我的代码”当前迭代列表项,获取href,在div横幅持有者中创建一个新的图像容器,并添加src属性 我想做的是跳过第一个列表项,因为我已经在横幅持有者中有了该图像,我不想再添加两次 多谢各位 $('li').each(function () { var bigImage = $(this).find('a.main-img').attr('href'); $('<img/>').attr('s
href
,在div横幅持有者中创建一个新的图像容器,并添加src
属性
我想做的是跳过第一个列表项,因为我已经在横幅持有者中有了该图像,我不想再添加两次
多谢各位
$('li').each(function ()
{
var bigImage = $(this).find('a.main-img').attr('href');
$('<img/>').attr('src', bigImage).appendTo('#banner-holder');
});
$('li')。每个(函数()
{
var bigImage=$(this.find('a.main-img').attr('href');
$('$('ul li')。不是(':first child')。每个(函数()
{
var bigImage=$(this.find('a.main-img').attr('href');
$('jQuery传递当前项的索引,因此您可以使用:
$('li').each(function (index)
{
if (index > 0) {
var bigImage = $(this).find('a.main-img').attr('href');
$('<img/>').attr('src', bigImage).appendTo('#banner-holder');
}
});
当前版本中有关于gt
选择器的注释:
因为:gt()是jQuery扩展,而不是CSS的一部分
规范中,使用:gt()的查询无法利用
本机DOM querySelectorAll()提供的性能提升
要在现代浏览器中获得更好的性能,请使用
$(“您的纯css选择器”)。改为切片(索引)
$('li:not(:first child')。每个(函数()
{
var bigImage=$(this.find('a.main-img').attr('href');
$('
我没有测试这个,但我认为它会起作用。jeez,甚至没有考虑:第一个孩子。有点有趣,在selectivizr上使用css3选择器已经有一段时间了,并且一直在与IE问题作斗争!非常感谢,真的帮了我一把!是的,第一个孩子在jquery中被涵盖,可以在旧版本的IE中工作。如果你是这样的话,你可以绕过它只要使用css,你就必须合并一个selectivizr.js文件,它允许用户使用css3选择器,从而使旧版IE的行为类似于IE9。我想在这里可以找到selectivizr文件。这就是我的想法。听起来你在jq中遇到了问题,而不是css,这就是我问的原因。我认为modernizr为我们做到了这一点。我使用Modernizer有一段时间了,但它真正做的只是在标题中列出当前浏览器支持的html5类。在过去的IE中,它确实没有帮助我。问题是当JavaScript被禁用时,即在过去版本的IE中显示站点时,开始看起来非常糟糕,因为6-8在没有帮助的情况下不呈现css3和html5我是JavaScript。
$('li').each(function (index)
{
if (index > 0) {
var bigImage = $(this).find('a.main-img').attr('href');
$('<img/>').attr('src', bigImage).appendTo('#banner-holder');
}
});
$('li:gt(0)').each(function() {
...
});
$('li:not(:first-child)').each(function ()
{
var bigImage = $(this).find('a.main-img').attr('href');
$('<img/>').attr('src', bigImage).appendTo('#banner-holder');
});