2016-03-19 65 views
0

我正尝试用javascript(无jquery)删除整个HTML块。使用javascript删除html

来源

<li uib-dropdown="" class="dropdown hidden-xs"> 
       <a uib-dropdown-toggle="" class="dropdown-toggle pointer" "="" aria-haspopup="true" aria-expanded="false"> 
           <img width="22" title=" - [email protected]" height="22" class="img-rounded profile-img" src="https://www.gravatar.com/avatar/edft80b9a51f775c8ee562ca89345318b"> &nbsp; 
           <!-- <b class="caret"></b> --> 
        <i class="fa fa-caret-down"></i> 
       </a> 
       <ul class="dropdown-menu small-dropdown-menu"> 
        <li><a href="https://app.example.com/#/account">Account</a></li> 
        <li><a href="https://app.example.com/#/account/billing">Billing</a></li> 
        <li><a href="https://app.example.com/#/account/team">Team</a></li> 
        <li><a href="https://app.example.com/#/account/plans">Plans</a></li> 
        <li class="hidden-lg"><a class="pointer" title="Ask us a question, report a bug or suggest a feature!" href="mailto:[email protected]">Contact</a></li> 
           <hr> 
        <li><a target="_self" href="https://app.example.com/logout"><i class="fa fa-sign-out"></i> Logout</a></li> 
       </ul> 
       </li> 

期望的结果 整个代码块应该被删除

我尝试

document.getElementsByClassName('dropdown hidden-xs').innerHTML = ''; 
+0

你不需要。在他的下拉菜单和hidden-xs之间 –

+0

您在modox2指出的语法错误。请参阅:MDN [Document.getElementsByClassName](https://developer.mozilla.org/en/docs/Web/API/Document/getElementsByClassName)以获取正确的用法。使用循环删除多个元素的内容。 – Roberto

回答

4

getElementsByClassName回报类似数组的对象,所以你需要通过索引来访问元素:

document.getElementsByClassName('dropdown hidden-xs')[0].innerHTML = ''; 
+0

感谢您提供新JS的提示......如果我想删除'class =“下拉列表中的每个实例hidden-xs”', – user2650277

+0

我的意思是有一种比使用循环更简单的方式 – user2650277

+0

@ user2650277我认为没有循环是不可能的。例如。 'elements.forEach(function(el){el.innerHTML ='';})' – madox2

1

要与该类的所有元素的HTML设置为'',你需要一个循环。

Array.prototype.forEach.call(document.getElementsByClassName('dropdown hidden-xs'), function(el) { 
    el.innerHTML = ''; 
}); 

或者,要真正删除它们,使用:

Array.prototype.forEach.call(document.getElementsByClassName('dropdown hidden-xs'), function(el) { 
    el.parentNode.removeChild(el) 
});