打印所有李的孩子们的文字没有得到亚孩子的每个李

你好我想打印所有李的元素文本没有得到他们的子孩子们的文字,但我无法得到正确的结果:打印所有李的孩子们的文字没有得到亚孩子的每个李

我的HTML:

<!doctype html> 

<html lang="en">

<head>

<meta charset="utf-8">

<title>child demo</title>

<style>

body {

font-size: 14px;

}

</style>

<script src="https://code.jquery.com/jquery-1.10.2.js"></script>

</head>

<body>

<ul class="topnav" id="abc">

<li>Item 1</li>

<li>Item 2

<ul>

<li class="topnav1">Nested item 1</li>

<li class="topnav1">Nested item 2</li>

<li class="topnav1">Nested item 3</li>

</ul>

</li>

<li>Item 3</li>

</ul>

<script>

var li = $("#abc > li");

var arr = [];

for(var i=0;i<li.length;i++){

arr.push($(li[i]).clone().children().remove().end().text());

}

console.log(arr);

</script>

</body>

</html>

脚本运行后,我在编曲越来越怪异的事情:

输出就这样产生:

0:"Item 1" 

1:"Item 2↵ ↵ "

2:"Item 3"

任何人都可以解释我对这些箭头的含义,我怎样才能得到所有李的文字。 我希望我的数组是:

0:"Item 1" 

1:"Item 2"

2:"Item 3"

当我收到错了吗?

回答:

该文本覆盖了整个节点,它也可能正在读取子节点li中的换行符。

你可以只使用trim()删除,像

var li = $("#abc > li"); 

var arr = [];

for(var i=0;i<li.length;i++){

arr.push($(li[i]).clone().children().remove().end().text().trim());

}

console.log(arr);

回答:

我不知道这是快,但肯定是更清洁

var arr = []; 

$('.topnav > li').filter(function() {

var temp = $(this)[0].firstChild.data;

arr.push(temp);

});

以上是 打印所有李的孩子们的文字没有得到亚孩子的每个李 的全部内容, 来源链接: utcz.com/qa/259722.html

回到顶部