2017-04-21 8 views
2

<span>の要素の中に属性 "contenteditable = true"があるという問題があります。文書全体から属性 "contenteditable"を削除します

これは問題ではありません。

私は、このように一時的な修正

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

を使用しています。しかし、これはつまり、高速ではありません。 htmlからすべての「contenteditable」属性を削除するより良い方法はありますか?

答えて

4

contenteditable属性を持つスパンを参照するにはdocument.querySelectorAll()を使用できます。

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

'querySelectorAll()'は、Firefoxで 'forEach'を持たない' NodeList'を返します。 – dsuckau

+0

@dsuckauあなたはドキュメントをよく調べてください。 'querySeletorAll'によって返されるノードリストには、関数forEachがあります。 –

+0

はい、そうです。私は私の会社のガイドラインに応じて、FirefoxのESRチャンネルを使用しています。最新の50+ Firefoxで実装されています!だから、気をつけたりポリフィルを使うべきです。多くの企業/クライアントは、拡張サポートのためにESRバージョンを使用しています。 – dsuckau