Ul li1 li2 ul3 li3.1 li3.2 ul3.3 ul3.3.1 ul3.3.2 li4 li5

И я должен проверить все элементы в ul3 Я не могу быть уверен, есть ли только два, три или более списков

1
Bohdan 3 Авг 2010 в 00:58

2 ответа

Лучший ответ

Ну, я не знаю, что вы имеете в виду под "проверкой", но вы можете вызвать функцию для каждого <li> следующим образом:

$('li').each(function() {
  // whatever "check" means
});

С помощью простого Javascript:

var nodes = document.getElementsByTagName('li');
for (var i = 0; i < nodes.length; ++i) {
  var li = nodes[i];
  // check ...
}

edit - ну, не совсем понятно, что именно вам нужно, но если вам просто нужно проверить элементы <li> в списках, которые сами находятся в элементах <li>, тогда вы бы просто закодировали это в селектор jQuery:

$('ul ul li').each(function() { ... });
3
Pointy 2 Авг 2010 в 21:13

Используйте each() следующим образом:

$('ul li').each(function(){
  // your code.....
});

Это будет проходить через дочерние элементы ul на любом вложенном уровне.

Обновление:

и я должен проверить все элементы в ul3 Я не могу быть уверен, есть ли только два, три или более списков

Попробуйте в этом случае:

$('ul:eq(2) li').each(function(){
  // your code.....
});

Это начнется с третьей ul и найдет своих дочерних элементов на любом вложенном уровне.

3
Sarfraz 2 Авг 2010 в 21:09