javascript - jQuery/JavaScript : how to remove all elements in the first <li> except <a>text</a>

标签 javascript html

我有一个嵌套列表。

<ul id="menu-main-menu" class="nav sn-nav">
   <li id="menu-item-38" class="menu-item menu-item-type-yawp_wim menu-item-object-yawp_wim menu-item-38">              
      <div class="yawp_wim_wrap">
         <div class="widget-area">
            <div id="custommetawidget-3" class="yawp_wim_widget customMetaWidget">  
               <span class="yawp_wim_title"></span> 
               <ul>
                  <li><a href="1">Site Admin</a></li>
                  <li><a href="2">Log out</a></li>
               </ul>
            </div>
         </div>
       </div>
    </li>
    <li>
       <a href="3">test</a>
    </li>
</ul>

我想删除第一个 <li id='menu-item-38'> 的所有元素但离开<a> .
就像第二个<li>
我发现了一个类似的链接:http://jsfiddle.net/yJrb7/1/
但它一直不起作用。

var li = document.getElementsByClassName('menu-item')[0];
var links = document.getElementsByTagName('a');
for(var i=0;i<li.childNodes.length;i++){
  if(li.childNodes[i].nodeName!=links)
    li.removeChild(li.childNodes[i--]);
}

编辑:
嘿伙计们,对不起,我的错,我没说清楚。
我实际上需要的是

<ul id="menu-main-menu" class="nav sn-nav">
  <li><a href="1">Site Admin</a></li>
  <li><a href="2">Log out</a></li>
  <li><a href="3">test</a></li>
</ul>

最佳答案

window.onload = function() {
    //declare an instance of DocumentFragment Type;
    var fragment = document.createDocumentFragment();
    var liList = document.getElementById("menu-item-38").querySelectorAll("li");
    for (var i = 0; i < liList.length; i++) {
        //copy these li into the fragment
        fragment.appendChild(liList[i]);
    }
    var removeObj = document.getElementById("menu-item-38");
    var parentElement = removeObj.parentNode;
    //remove li whose id id [menu-item-38]
    parentElement.removeChild(removeObj);
    //add fragment to the parmentElement
    parentElement.appendChild(fragment);
}

关于javascript - jQuery/JavaScript : how to remove all elements in the first <li> except <a>text</a>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38951224/

相关文章:

javascript - 如何使用 javascript 将一系列键替换为显示的字符串?

javascript - AngularFire推送功能

html - 屏蔽重定向会影响链接吗?

html - div是不是按照我的选择固定的?

html - 试图得到第一个 child 并改变它的颜色

html - 2行5列全宽

javascript - 用 div jquery 包装文本

javascript - Firebase Orderby 格式不正确

javascript - 为什么选择 AJAX 历史记录管理器?

html - 媒体查询不适用于最大宽度屏幕尺寸 (640px)