JQuery - Непосредственные дети

У меня есть структура как это:


Теперь, я использую JQuery для получения только непосредственных детей ul#mycustomid. Но мой код возвращает меня со ВСЕМ литием в моей структуре. Как я должен продолжить двигаться?

Вот мой код:

$(document).ready(function() {
 var arri = $("#mycustomid>li").text();
 alert(arri);
});

Я попробовал .children () также, он дает мне почти тот же результат. Это действительно действует на мои нервы :(

Мои выводы окна предупреждений точно как показано ниже (включая те белые разрывы):

Item A 
Child1 of A
Grandchild of A

Grand Grandchild of A


ItemBItemC

Принимая во внимание, что, это должно быть просто (без пробелов):

Item A 
Item B
Item C

Для понимания моей проблемы можно проверить активную версию по http://jsfiddle.net/yS6ZJ/

Укажите на меня в правильном направлении,

Спасибо

5
задан dsignr 2 July 2010 в 13:27
поделиться

2 ответа

Я думаю, что ваш селектор работает нормально - проблема в том, что вы с ним делаете.

Когда вы вызываете .text () , вы получаете все содержимое элемента. Все это, включая дочерние элементы.

Попробуйте следующее:

$('#mycustomid > li').each(function() {
  alert($(this).find('a:eq(0)').text());
});
9
ответ дан 13 December 2019 в 22:01
поделиться

Это решит вашу проблему:

$(document).ready(function() {
  var arri=$("#mycustomid > li").children('a').append('\n').text();
  alert(arri);
});

append ('\ n') используется только для добавления разрыва строки, чтобы он выглядел нормально в предупреждении.

Чтобы включить всех внуков, вы просто удалите прямую ссылку на LI :

$(document).ready(function() {
  var arri=$("#mycustomid li").children('a').append('\n').text();
  alert(arri);
});

И просто получите внуков:

$(document).ready(function() {
  var arri=$("#mycustomid li").not("#mycustomid > li").children('a').append('\n').text();
  alert(arri);
});

И чтобы получить каждый уровень, вы можете:

$(document).ready(function() {
  var ChildOfA=$("#mycustomid > li > ul > li > a").append('\n').text();
  var GrandchildOfA=$("#mycustomid > li > ul > li > ul > li > a").append('\n').text();
  var GrandGrandChildOfA=$("#mycustomid > li > ul > li > ul > li > ul > li > a").append('\n').text();
  alert('List of Child1 of A children:\n\n'+ChildOfA+'\n\n'+
        'List of Grandchild of A children:\n\n'+GrandchildOfA+'\n\n'+
        'List of Grand Grand child of A children:\n\n'+GrandGrandChildOfA);
});
1
ответ дан 13 December 2019 в 22:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: