2013-06-04 4 views
1

Я пытаюсь принять меры во всех 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> 
+0

@karthikr: за исключением того, что ваша скрипка не принимает действие на элемент, чей идентификатор не «первый». Смотрите ответы на то, что я думаю, чего хочет OP. – Chris

+0

Я рекомендую использовать '$ (...). Each (...)'. Я бы сказал, что это более «естественный» способ повторить выбор. –

ответ

2

ну, вы нацеливаете первый элемент с помощью класса storyBlock (это то, что делает :first), поэтому это не ошибка, а функция.

Попробуйте это:

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

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

    }); 
}); 
1

ИД первого имеет #first селектор

Так $(".storyBlock:not(#first)") РЕКОМЕНДУЕМЫМ сделай это.

3

:first отличается от #first. Первый - это первый элемент в группе элементов, а #first - это элемент с атрибутом ID first, который, кажется, является тем, что вы хотите.

Обратите внимание, что вы также можете написать это как:

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

Вы также можете сделать это:

$('.storyBlock:not(:first)').each(function() {}) 
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 - это селектор, который буквально даст вам первый элемент согласованного элемента.

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 

    }); 
}); 
+0

Вы можете просто использовать '# first' вместо селектора атрибутов, кстати. –

+0

Да, ваши права @Colin DeClue –