我需要使用javascript刪除頁面中的所有樣式定義,以獲得與在Firefox中執行View > Page Style > No Style
相同的結果。哪種方法最簡單?刪除頁面中所有樣式的最簡單方法
8
A
回答
13
可以遞歸迭代通過的所有元素,並刪除style
屬性:
function removeStyles(el) {
el.removeAttribute('style');
if(el.childNodes.length > 0) {
for(var child in el.childNodes) {
/* filter element nodes only */
if(el.childNodes[child].nodeType == 1)
removeStyles(el.childNodes[child]);
}
}
}
removeStyles(document.body);
要刪除鏈接的樣式表您還可以使用以下代碼片段:
var stylesheets = document.getElementsByTagName('link'), i, sheet;
for(i in stylesheets) {
sheet = stylesheets[i];
if(sheet.getAttribute('type').toLowerCase() == 'text/css')
sheet.parentNode.removeChild(sheet);
}
8
如果您有jQuery的,你也許可以這樣做
$('link[rel="stylesheet"], style').remove();
$('*').removeAttr('style');
1
使用ES6 Array.from
Array.from(document.querySelectorAll('link[rel="stylesheet"], style'))
.forEach(elem => elem.parentNode.removeChild(elem));
1
這裏是ES6善良,你可以只用一行做。
1)要刪除所有內嵌樣式(如:style="widh:100px"
)
Array.from(document.querySelectorAll('[style]'))
.forEach(el => el.removeAttribute('style'));
2)要刪除鏈接外部樣式表(如:<link rel="stylesheet"
)
Array.from(document.querySelectorAll('link[rel="stylesheet"]'))
.forEach(el => el.parentNode.removeChild(el));
3)要刪除所有內嵌樣式標籤(例如:<style></style>
)
Array.from(document.querySelectorAll('style'))
.forEach(el => el.parentNode.removeChild(el));
相關問題
- 1. 最簡單的方法刪除行
- 2. 刪除子頁面中所有當前應用的ContentPlaceHolder樣式?
- 3. 以最簡單,最簡單的方式編輯一個頁面
- 4. 通過簡單的html dom刪除頁面的所有href
- 5. 從網頁中刪除所有內容的最佳方式?
- 6. 刪除所有非單詞字符的簡單方法
- 7. C# - 在Page_Load方法的所有頁面中執行代碼的簡單方法
- 8. 什麼是刪除我所有blobstore數據的最簡單方法?
- 9. 刪除HTML頁面中的所有JavaScript
- 10. 刪除部分HTML頁面的樣式
- 11. 刪除HTML頁面的樣式標籤
- 12. 最簡單的方法從FPU堆棧中刪除東西
- 13. 從XML中刪除值的最簡單方法是什麼
- 14. 從2D陣列中刪除鍵的最簡單方法?
- 15. 最簡單的方式在頁面中內嵌
- 16. 簡單的方法來刪除URL中的所有斜線在java中
- 17. GWT多個頁面(最佳/最簡單的方法)
- 18. 有沒有簡單的方法從數組中刪除項目?
- 19. Postback從頁面刪除樣式
- 20. 刪除所有子元素的樣式
- 21. 從文本文件中刪除單詞的所有實例的最簡單方法
- 22. 最簡單的方法來刪除陳舊的ContentTypes?
- 23. 如何刪除RealmResults列表中最快和最簡單的所有項目?
- 24. 最簡單的方法來添加/刪除模型關係
- 25. 最簡單的方法來查找和刪除重複?
- 26. 最簡單的方法刪除一段文字,n次
- 27. 強制刪除WebSocket連接最簡單的方法是什麼?
- 28. 檢測最簡單的方法/刪除PHP代碼庫
- 29. 從Primefaces組件刪除所有樣式?
- 30. 刪除大表中所有數據的最快方法
這將刪除直接應用的樣式元素,但不會影響CSS。 – 2012-02-12 22:30:06
@kennis謝謝你指出 - 只是我的答案... – xandercoded 2012-02-12 22:39:32
你的代碼似乎很有希望。無論如何,我必須運行第二個片段兩次才能生效。爲什麼? P.S .: .toLowerCase() – tic 2012-02-12 22:59:51