Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在jquery中找到上层(顶层)li?_Javascript_Jquery - Fatal编程技术网

Javascript 如何在jquery中找到上层(顶层)li?

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>

我正试图从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>
    </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
  • 然后我在ul上放了一个类属性“chapters”,然后像这样尝试
    $(“.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()
    ,这样它就不会被永久删除。