作用于项目符号列表的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()所做的事情。你的回答简短而甜蜜,效果完美。