如何在javascript中删除此<p>
标记及其所有内容?
说我有这个HTML代码
<p class="classname">
<input name="commit" value="Get Value" type="submit"> <span>or Cancel</span>
</p>
现在我需要在javascript中替换/删除它,有谁知道我如何删除它?
答案 0 :(得分:6)
假设您不想更改标记:最简单的方法是使用库。例如用jQuery:
jQuery('.classname').remove();
否则,您需要获得对该元素的引用,然后:
el.parentNode.removeChild(el);
获取元素的引用是棘手的部分。有些浏览器会实现getElementsByClassName,但您必须自己编写或使用第三方实现。
if (!document.getElementsByClassName) {
document.getElementsByClassName = function (className) {
/* ... */
}
}
如果您愿意更改标记,请为该元素指定一个id并使用document.getElementById来获取对它的引用。
答案 1 :(得分: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,prototype,dojo等库/框架。
答案 2 :(得分: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();