Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.08.2011, 16:38
Профессор
Отправить личное сообщение для Триви Посмотреть профиль Найти все сообщения от Триви
 
Регистрация: 23.04.2010
Сообщений: 354

hasClass наоборот
Добрый день, коллеги.
Мне нужно записать в массив айдишники всех <LI>,
находящихся в <UL> c ID "navigation" и не имеющие класс "shadow".
Так как notHasClass я в доках не нашёл,
у меня получился вот такой вот изврат:

tabs_id_arr = new Array();
$("ul#navigation li").each(function (i) {
   if ($(this).attr("class") != "shadow") {
       tabs_id_arr[i]= $(this).attr("id");
   }
});


Однако, перфекционизм не даёт мне покоя)))
Хотелось бы видеть конструкцию что то типа:

tabs_id_arr=$("ul#navigation li").notHasClass("shadow").get();


пи.си. выбираемые элементы не имеют никакого класса!
Ответить с цитированием
  #2 (permalink)  
Старый 22.08.2011, 16:43
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

1. ID должно быть уникально у каждого элемента.
2. .not(selector) Исключает из набора те элементы, которые соответствуют селектору.
__________________
.
Ответить с цитированием
  #3 (permalink)  
Старый 22.08.2011, 16:47
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

http://api.jquery.com/filter/
http://api.jquery.com/not-selector/
Ответить с цитированием
  #4 (permalink)  
Старый 22.08.2011, 17:05
Профессор
Отправить личное сообщение для Триви Посмотреть профиль Найти все сообщения от Триви
 
Регистрация: 23.04.2010
Сообщений: 354

так
tabs_id_arr=$("ul#navigation li:not('.shadow')").get();
???

что то пролистать его потом не получается((

jQuery.each(tabs_id_arr, function(i) {
   alert(tabs_id_arr[i]);
});


Выводит [object HTMLLIElement]
Ответить с цитированием
  #5 (permalink)  
Старый 23.08.2011, 00:45
Аватар для kadabrik
Кандидат Javascript-наук
Отправить личное сообщение для kadabrik Посмотреть профиль Найти все сообщения от kadabrik
 
Регистрация: 10.12.2010
Сообщений: 114

Сообщение от Триви Посмотреть сообщение
так
tabs_id_arr=$("ul#navigation li:not('.shadow')").get();
???

что то пролистать его потом не получается((

jQuery.each(tabs_id_arr, function(i) {
   alert(tabs_id_arr[i]);
});


Выводит [object HTMLLIElement]
tabs_id_arr.each(function(){console.log($(this))});
Ответить с цитированием
  #6 (permalink)  
Старый 23.08.2011, 04:08
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

tabs_id_arr=$("ul#navigation li:not('.shadow')").get();

Либо я чет не вкуриваю, но не могу понять накой нужен метод get() вконце? И без него должно все пахать как часы.
Ответить с цитированием
  #7 (permalink)  
Старый 23.08.2011, 10:06
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Сообщение от Триви
Выводит [object HTMLLIElement]
А разве не так должно быть ?
Метод get() который вы используете
Сообщение от Триви
tabs_id_arr=$("ul#navigation li:not('.shadow')").get();
Возвращает DOM элемент а не JQuery объект.
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #8 (permalink)  
Старый 23.08.2011, 14:18
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от walik
Возвращает DOM элемент а не JQuery объект.
Да значит я все же еще не глуп, а то сижу смотрю и думаю неужто get() стал возвращать просто jq объект... А не все же как положено =)
Ответить с цитированием
  #9 (permalink)  
Старый 23.08.2011, 17:34
Профессор
Отправить личное сообщение для Триви Посмотреть профиль Найти все сообщения от Триви
 
Регистрация: 23.04.2010
Сообщений: 354

Тупанул жестко))) сорри
jQuery.each(tabs_id_arr, function(i) {
      alert($(this).attr("id"));
});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конвертация объекта jQuery в простой DOM-объект и наоборот trial jQuery 2 25.05.2010 01:33
Нужно ли проверять hasClass? kondrat jQuery 3 05.05.2010 21:10
Фреймворк наоборот: vice-versa hogart Общие вопросы Javascript 7 05.05.2009 13:03