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