Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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_Javascript_Jquery - Fatal编程技术网

作用于项目符号列表的Javascript

作用于项目符号列表的Javascript,javascript,jquery,Javascript,Jquery,我有这样一个项目列表: <ol> <li>Point 1</li> <li>Point 2</li> <li>Point 3 has sub-points <ul> <li>Sub-point about something</li> <li>Sub-point about something else</li> </ul>

我有这样一个项目列表:

<ol>
 <li>Point 1</li>
 <li>Point 2</li>
 <li>Point 3 has sub-points
  <ul>
   <li>Sub-point about something</li>
   <li>Sub-point about something else</li>
  </ul>
 </li>
</ol>
它使它看起来像这样:

<ol>
 <li>Point 1</li>
 <li>Point 2</li>
 <li>Point 3 has sub-points
  <ul>
   <li>Sub-point about something</li>
   <li>Sub-point about something else</li>
  </ul>
 </li>
</ol>
  • 第1点
  • 第2点
  • 第三点有关于某件事的子点 关于其他事情的分论点

我尝试了几次jQuery选择器的迭代,包括
ol>li
,但是没有一次给出期望的结果。想法?

您可以使用获取文本节点,然后可以使用它们并执行所需的操作

$(document).ready(function() {
    $("li")
        .contents()
        .filter(function() {
            return this.nodeType == 3;
        }) //Filter text nodes
        .each(function() {
            this.nodeValue = dev2latin(this.nodeValue); //You can also textContent
        });
});
以下是一个例子:

$(文档).ready(函数(){
$(“li”).contents().filter(函数()){
返回this.nodeType==3;
}).each(函数({
this.textContent=this.textContent+“已更新”;
});
});

  • 第1点
  • 第2点
  • 第3点有子点
    • 关于某事的分论点
    • 关于其他事情的分论点

  • 问题在于调用父li中的.text()也将返回子li的文本内容

    $("li").contents().each(function () {
        if (this.nodeType == 3 && this.nodeValue.trim()) {
            this.nodeValue = dev2latin(this.nodeValue)
        }
    })
    
    演示:

    $('ol>li').each(function(){console.log($(this)[0].childNodes[0]);})

    $('ul>li').each(function(){console.log($(this)[0].childNodes[0]);})


    试着这样做。

    它只是在左边添加了子弹?我不知道是不是我,但我什么都不懂。jQuery用于什么?期望的结果是什么?你在这里想要达到什么?你想添加要点还是什么?它现在在做什么,什么都没有?或者是一些错误的东西?什么是dev2latin,这是一个自定义函数还是什么?dev2latin函数正在做一些我认为没有必要详细描述的事情(我提到它是音译)。如果我有अच्छा 它是用印地语写的,上面写着“阿克哈”。是的,宾果。感谢您在回答之前没有抱怨您不理解dev2latin()所做的事情。你的回答简短而甜蜜,效果完美。