使用每个没有

时间:2013-06-04 16:13:39

标签: jquery css

我正在尝试对ID不是“第一”的所有div采取行动。但不知何故,当我运行我的每个循环时,它忽略了第一个div并继续下一个。我觉得这很容易解决......

jQuery:

$(document).ready(function(){
    $.each($(".storyBlock:not(:first)"), function(i, object){
        console.log(i); //returns 0 for the second item, 1 for the third item
    });
});

HTML:

<div class="content">
    <div class="storyBlock" id="second" style="margin-top:1500px" img="mypathhere"></div>
    <div class="storyBlock" id="third" style="margin-top:1500px" img="mypathhere"></div>
    <div class="storyBlock" id="fourth" style="margin-top:1500px" img="mypathhere"></div>
</div>

6 个答案:

答案 0 :(得分:3)

:first#first不同。前者是一组元素中的第一个元素,而#first是ID属性为first的元素,这似乎是你想要的。

请注意,您也可以将其写为:

$(".storyBlock:not(#first)").each

答案 1 :(得分:2)

好吧,你的目标是第一个带有类storyBlock的项目(这就是:first所做的),所以它不是一个bug而是一个功能。

试试这个:

$(document).ready(function()
{
    $.each($(".storyBlock:not(#first)"), function(i, object){

        console.log(i);//returns 0 for the second item, 1 for the third item

    });
});

答案 2 :(得分:2)

您也可以使用.not()遍历API ...

http://api.jquery.com/not/

(".storyBlock").not("#first").each(function(i, object){
    console.log(i);//returns 0 for the second item, 1 for the third item
});

First是一个选择器,它将为您提供匹配元素的第一个元素。

答案 3 :(得分:1)

第一个ID有一个#first选择器

所以$(".storyBlock:not(#first)")应该这样做。

答案 4 :(得分:0)

你也可以这样做:

$('.storyBlock:not(:first)').each(function() {})

答案 5 :(得分:0)

试试这个

$(document).ready(function()
{
    $.each($(".storyBlock:not([id='first'])"), function(i, object){

        console.log(i);//returns 0 for the second item, 1 for the third item

    });
});