Javascript 如何在jquery中找到上层(顶层)li?
我正试图从html中找到所有topli。我有这个标记Javascript 如何在jquery中找到上层(顶层)li?,javascript,jquery,Javascript,Jquery,我正试图从html中找到所有topli。我有这个标记 <ul class="chapters"> <li> tc_1 </li> <li> tc_2<ul> <li>tc_1_1</li> <li>tc_1_2</li> <li>tc_1_3</li>
<ul class="chapters">
<li>
tc_1
</li>
<li>
tc_2<ul>
<li>tc_1_1</li>
<li>tc_1_2</li>
<li>tc_1_3</li>
</ul>
</li>
<li>
tc_3
</li>
</ul>
-
tc_1
-
tc_2
- tc_1_1
- tc_1_2
- tc_1_3
-
tc_3
预期答案:tc\u 1、tc\u 2、tc\u 3
我试着这样做,实际上我在控制台上检查并编写代码
$('li')
,结果得到null
$(“.chapters”)
再次出现,我得到了null
如何实现这一点?这将定位
ul
,获取其直接子项(每个li
),然后删除所有子项.end()
,以返回li
并.text()
获取内容
$("ul").clone().children().children().remove().end().text()
这是回报
"tc_1
tc_2
tc_3"
因为中间有换行符和空格。$(“.chapters li”).text()
应该有用
$('.chapters > li').each(function(){
alert($(this) .clone()
.children()
.remove()
.end()
.text());
});
有关更多说明,您可以阅读您可以遍历最顶层
li
元素的childnode
,并过滤它们的第一个textNode
:
var textArray = $(".chapters > li").map(function() {
var nodes = this.childNodes, len = nodes.length;
for ( var i = 0; i < len; i++ ) {
if ( nodes[i].nodeType === 3 && $.trim(nodes[i].nodeValue).length ) {
return $.trim(nodes[i].nodeValue);
}
}
}).get();
console.log(textArray.join());
var textArray=$(“.chapters>li”).map(函数(){
var nodes=this.childNodes,len=nodes.length;
对于(变量i=0;i
尝试以下操作:$('.chapters li').html()$(“.chapters li”)在控制台上为我提供null您的浏览器?你确定jquery已经加载了吗?您使用的是哪个版本?是否正确地包含了jquery库(inspect$)?您是否在正确的框架中执行console命令?实际上,先生,我正在console上编写代码..意思是键入f12键,然后尝试获取liSo没有加载jquery。。如果我曾经删除过它,你应该将它加载到你的HTML文件中。如果我曾经删除过它,你也应该将它从我的视图中删除。我只希望内容不从我的视图中删除。我只希望内容不从htmlWell中删除,然后添加一个
.clone()
,这样它就不会被永久删除。