2013-12-05 8 views
0

У меня есть этот код:Как проверить два условия с JQuery .Не() функции

<div id="fullpage"> 
    <div class="content-part selected" id="importantz" number="0"></div> 
    <div class="content-part" id="internationalz" number="1"></div> 
    <div class="content-part" id="businessz" number="2"></div> 
</div> 

Я хочу получить элементы в $ («# Вся страница»), который не в 2 группы:

1- элементы, которые имеют класс = выбранные

2- элементы, которые имеют число = 1

Я использую этот JQuery код, но не работает XD .... пожалуйста, руководство меня:

pervSt = $('#fullpage').find('.selected'); 
sss = $('#fullpage').children('[number=1]'); 


$('#fullpage .content-part').not(pervSt,sss).each(function(){ 
    /* ahhhhhhh this not working XD */  
    console.log($(this).attr('number')) 
}); 

ответ

4

Вы можете использовать:

$('#fullpage .content-part:not(.selected):not([number="1"])').each(function() { 
    ... 
}); 

jsFiddle

+0

Ницца, я не видел, как вы уже ответили так, как я. Я не обновил страницу и пропустил ваш ответ. В этом случае я удалю свой и +1 ваш вместо. В качестве дополнительного примечания к OP, почему это лучшее решение, исходные переменные, используемые в вопросе, заключаются в том, что запрос для всех выбранных элементов и всех элементов, которые имеют атрибут '[number = 1]' только для исключения, - это лишние накладные расходы что можно избежать, добавив условие в фактический селектор, как показывает этот ответ. – Nope

0

Попробуйте

fiddle Demo

$('#fullpage .content-part').not('.selected, [number=1]').each(function() { }); 

fiddle Demo

$('#fullpage .content-part').not('.selected').not('[number=1]').each(function() { }); 
0

Как это:

$('#fullpage .content-part').not('.selected, [number=1]').each(function(){...}); 

Или с помощью переменных:

$('#fullpage .content-part').not(pervSt.add(sss)).each(function(){...}); 
Смежные вопросы