2017-04-21 57 views
2

我遇到一些<span>元素具有「contenteditable = true」屬性的問題。從整個文檔中刪除屬性「contenteditable」

這是一個應該是錯誤的問題。

我用這作爲臨時的解決辦法

for (i = 0; i < document.getElementsByTagName("span").length; i++) { 
    document.getElementsByTagName("span")[i].removeAttribute("contenteditable"); 
} 

但是,這並不那麼快。有沒有更好的方法從html中刪除所有「contenteditable」屬性?

回答

4

您可以使用document.querySelectorAll()來指代具有contenteditable屬性的span。

document.querySelectorAll("span[contenteditable]").forEach(function(el){ 
    el.removeAttribute("contenteditable"); 
}) 
+1

'querySelectorAll()'返回'NodeList',例如在Firefox中沒有'forEach'。 – dsuckau

+0

@dsuckau你最好查看文檔。 'querySeletorAll'返回的節點列表有一個函數'forEach'。 –

+0

是的,你是對的。我使用的是Firefox的ESR頻道,具體取決於我公司的指導原則。在最新的50+ Firefox中,它已經實現了!所以你應該小心謹慎或者使用polyfill。由於延伸的支持,許多公司/客戶使用ESR版本。 – dsuckau