Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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中获取列表项最顶端父项的文本?_Javascript_Jquery - Fatal编程技术网

Javascript 如何在jquery中获取列表项最顶端父项的文本?

Javascript 如何在jquery中获取列表项最顶端父项的文本?,javascript,jquery,Javascript,Jquery,我有以下设计的ul列表 <ul> <li class="category"> Design <ul> <li>Graphic Design</li> <li>Web Design </li> <li>HTML</li> <li>CSS</

我有以下设计的
ul列表

<ul>
    <li class="category">
        Design
        <ul>
            <li>Graphic Design</li>
            <li>Web Design </li>
            <li>HTML</li>
            <li>CSS</li>
            <li>Print</li>
        </ul>
    </li>
    <li class="category">
        Development
        <ul>
            <li>PHP</li>
            <li>Java</li>
        </ul>
    </li>
</ul>

尝试更换此部件

$(this).parents(".category").text()

childNodes返回包括文本节点在内的所有子元素

如果只想使用jQuery,则将此textnode包装在一个范围内

<ul>
    <li class="category">
        <span>Design</span>
        <ul>
            <li>Graphic Design</li>
            <li>Web Design </li>
            <li>HTML</li>
            <li>CSS</li>
            <li>Print</li>
        </ul>
    </li>
    <li class="category">
        <span>Development</span>
        <ul>
            <li>PHP</li>
            <li>Java</li>
        </ul>
    </li>
</ul>
另一种方法是使用jquery的
内容
过滤器

$(this).parents(".category").contents().filter(function() {
    return this.nodeType == 3;
}).nodeValue;

尝试更换此部件

$(this).parents(".category").text()

childNodes返回包括文本节点在内的所有子元素

如果只想使用jQuery,则将此textnode包装在一个范围内

<ul>
    <li class="category">
        <span>Design</span>
        <ul>
            <li>Graphic Design</li>
            <li>Web Design </li>
            <li>HTML</li>
            <li>CSS</li>
            <li>Print</li>
        </ul>
    </li>
    <li class="category">
        <span>Development</span>
        <ul>
            <li>PHP</li>
            <li>Java</li>
        </ul>
    </li>
</ul>
另一种方法是使用jquery的
内容
过滤器

$(this).parents(".category").contents().filter(function() {
    return this.nodeType == 3;
}).nodeValue;
只要改变一下:

console.log("Child Clicked: "+$(this).text()+" Parent: "+$(this).parents(".category").text());
与:

console.log("Child Clicked: "+$(this).text()+" Parent: "+$(this).parent().text());
只要改变一下:

console.log("Child Clicked: "+$(this).text()+" Parent: "+$(this).parents(".category").text());
与:

console.log("Child Clicked: "+$(this).text()+" Parent: "+$(this).parent().text());

它返回当前单击项目的完整列表。然后您可以选择第一个,例如:$(this)。parent()[0]实际上我想要的父项目不在列表中,它只给我兄弟项目列表。它返回当前单击项目的完整列表。然后您可以选择第一个,例如:$(this)。parent()[0]实际上,我想要的父项不在列表中,它只是给了我兄弟项列表。这很有效,谢谢你,但我一定要使用jquery,我们是否可以用jquery完成它?@BillalHussan不确定jquery是否提供了足够的资源来使用jquery。事实上,您应该更改标记以将该文本包含在span或其他元素中。
。可以使用filter()
。使用span可能会有所帮助。谢谢大家我工作了谢谢,但是我一定要使用jquery,我们是否可以用jquery来完成它?@BilalHussan不确定jquery是否提供了足够的资源来使用jquery。事实上,您应该更改标记以将该文本包含在span或其他元素中。
。可以使用filter()
。使用span可能会有所帮助。谢谢大家