2010-04-27 166 views
1

如何将此<p>标记及其所有内容在javascript中删除?在Javascript中删除<p class =“classname”>?

说我有这样的HTML代码

<p class="classname"> 
    <input name="commit" value="Get Value" type="submit"> <span>or Cancel</span> 
</p> 

现在我需要更换/ javascript中删除它,没有人知道我可以删除它?

回答

2

如果你必须这样做,在普通的JavaScript它会因为Internet Explorer的是痛苦的,其不支持getElementsByClassName()(也许在更新的版本?)。

var elems = document.getElementsByTagName('p'); 
var elemsLenght = elems.lenght; 
for (var i = 0; i < elemsLenght; ++i) { 
{ 
    if (elems[i].className == 'classname') 
    { 
     elems[i].innerHTML = ''; 
    } 
} 

但是如果可以的话,使用像jQuery,原型,道场等库/框架..

+0

这是一个不安全的:http://www.jslint.com/lint.html#forin – Quentin 2010-04-27 10:08:58

+1

class属性需要一个空格分隔的类列表,所以'=='对于一般的getElementsByClassName实现来说不够好(尽管在这个特殊情况下就足够了) – Quentin 2010-04-27 10:09:47

+0

你对这两个评论都是正确的,目的是解释如何在javascript中做到这一点,而不是开箱即用的代码。 实现getElementsByClassName的最好方法是将其原型化为本地javascript函数,并根据多个类检查类名。 – 2010-04-27 10:12:51

6

假设您不想更改标记:最简单的方法是使用库。例如使用jQuery:

jQuery('.classname').remove(); 

否则,你需要去的元素,然后参考:

el.parentNode.removeChild(el); 

前往元素的引用是棘手的部分。有些浏览器实现getElementsByClassName,但您必须自己编写或使用第三方实现。

if (!document.getElementsByClassName) { 
    document.getElementsByClassName = function (className) { 
     /* ... */ 
    } 
} 

如果您愿意更改标记,那么给元素一个id并使用document.getElementById来获取对它的引用。

+0

最容易与jQuery ** **或任何其他几个JavaScript库:HTTP:// prototypejs .org,http://code.google.com/closure/library等 - http://en.wikipedia.org/wiki/List_of_JavaScript_libraries – 2010-04-27 10:03:28

+0

公平的观点,我会承认我最初误解了这个问题,认为它说'jQuery'而不是'JavaScript'。这需要一些匆忙的编辑,我没有调低'使用jQuery'。 jQuery非常喜欢很多StackOverflow用户似乎已经影响了我的眼睛。 – Quentin 2010-04-27 10:07:25

1

试试这个:

<p id="someid"> 
    <input name="commit" value="Get Value" type="submit"> <span>or Cancel</span> 
</p> 

function removeElement(id) { 
    var d = document.getElementById('myDiv'); 
    var olddiv = document.getElementById(id); 
    d.removeChild(olddiv); 
} 


removeElement('someid'); 

使用jQuery,如果你想

$('p.classname').remove(); 
+0

但是我没有那个元素的ID – streetparade 2010-04-27 10:02:58

+0

@streetparade:如果你不想使用'id'并且不想使用jquery,你应该像@David Dorward所建议的那样。 – Sarfraz 2010-04-27 10:04:33

相关问题