2010-04-27 191 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

相關問題