Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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_Replace_Find - Fatal编程技术网

Javascript 更改<;李>;如果在链接名中找到特定字符,则标记列表结构

Javascript 更改<;李>;如果在链接名中找到特定字符,则标记列表结构,javascript,jquery,replace,find,Javascript,Jquery,Replace,Find,我有一个列表代码 <div id="nav"> <ul> <li><a href="https://"> Home </a></li> <li><a href="https://"> Profile </a></li> <li><a href="https://"> _Vision </a></li&

我有一个列表代码

<div id="nav">
   <ul>
     <li><a href="https://"> Home </a></li>
     <li><a href="https://"> Profile </a></li>
     <li><a href="https://"> _Vision </a></li>
     <li><a href="https://"> _Mission </a></li>
    </ul>
   </ul>
</div>

如果链接名中有一个字符(不带引号),则代码列表的结构将是一个子菜单,并输入标记列表以前具有的子类

<div id="nav">
   <ul>
     <li><a href="https://"> Home </a> </li>
     <li class="has-sub"><a href="https://"> Profile </a>
       <ul class="sub-menu">
         <li><a href="https://"> Vision </a></li>
         <li><a href="https://"> Mission </a></li>
       </ul>
     </li>
   </ul>
</div>

如何让javascript代码能够执行它,因为我还在学习阶段使用javascript代码或jQuery。
我非常感谢他的帮助。

您可以创建一个wrap函数,该函数只需将
li
标记与
ul.子菜单
标记(如果其文本以
开头)

函数换行(节点){
设ul=document.createElement(“ul”);
ul.className=“子菜单”;
node.textContent=node.textContent.trim().substr(1,node.textContent.length);
node.parentNode.insertBefore(ul,node);
let inserted=node.previousElementSibling.appendChild(节点);
$(插入).parent().prev(“li”).addClass(“has sub”);
}
$(“ul>li>a”)。每个((索引,ele)=>{
如果(ele.textContent.trim().charAt(0)=“u389;”){
包装(ele.parentNode);
}
});

let子菜单=null
Array.from(document.getElementById('nav').children[0].children)
.地图(
职能(e){
if(e.children[0].textContent.charAt(0)='\u0'){
如果(!子菜单){
子菜单=document.createElement('ul')
}
e、 子[0]。textContent=e.children[0]。textContent.substring(1)
子菜单.附加子菜单(e)
}否则{
如果(子菜单){
e、 previousSibling.replaceWith(子菜单)
子菜单=空
}
}
}
)
如果(子菜单){
document.getElementById('nav').children[0]。lastChild.replaceWith(子菜单)
}


Wow太好了,有可能删除链接名中的“u”吗?@ATLM已调整。谢谢@zfrish如果配置文件中包含类子菜单li标记怎么办?