如何刪除所有HTML標記中的所有background="..."
?我明白嘗試使用正則表達式解析HTML並不是一個好主意,但我不知道任何結束。 (嘗試正則表達式"background([\s\S]*?)(;|\")"
- 不起作用)。 謝謝。使用javascript刪除所有html標記中的背景樣式
回答
通過簡單的腳本,您可以使用此代碼,
<script>
var allElements = document.childNodes;
for (var i = 0; i < allElements.length; i++)
{
var currElement = allElements[i];
if (currElement.hasAttribute("background"))
{
currElement.removeAttribute("background");
}
}
</script>
and to solve your mentioned issue,
use this,
use this to solve this issue,
`<script>
function removeBackground(cElement) {
var allElements = cElement.childNodes;
if (allElements.length > 0) {
for (var i = 0; i < allElements.length; i++) {
var currElement = allElements[i];
if (currElement.childNodes.length > 0) {
removeBackground(currElement);
}
if (currElement.hasAttribute("background")) {
currElement.removeAttribute("background");
}
}
}
}
removeBackground(document);
</script>`
使用jQuery你可以使用一個簡單的選擇爲:
$("*").css('background', 'transparent');
背景屬性而不是風格:
$("*").removeAttr('background');
沒有jQuery的這是一個有點更多的工作要做:
var elements = document.getElementsByTagName("*");
for (var i = 0, i < elements.length; i++) {
elements[i].style.background = "transparent";
}
原始背景屬性:
var elements = document.getElementsByTagName("*");
for (var i = 0, i < elements.length; i++) {
if (elements[i].hasAttribute("background")) {
elements[i].removeAttribute("background");
}
}
$(document).ready(function(){
\t $('*').removeAttr('background');
});
<!DOCTYPE html>
<html>
<body background="https://www.google.co.in/images/srpr/logo11w.png">
<h1>Hello world!</h1>
<p>The background attribute is not supported HTML5. Use CSS instead.</p>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</body>
</html>
您可以使用jQuery刪除所有的背景屬性一樣,
$('*').removeAttr("background");
你沒看過你的代碼片段,對吧? 「背景」不支持在HTML5 – jbutler483
是的,它不贊成 –
@jbutler,但如果你看到這個問題,似乎這是OP想要刪除 – Kaiido
你可以添加自定義的紙張覆蓋背景屬性 這樣
var style = document.createElement('style');
document.head.appendChild(style);
// Depend on browser implementation
if (style.sheet.insertRule) {
style.sheet.insertRule("* { background:none !important }", 0);
}
else if (style.sheet.addRule) {
style.sheet.addRule("*","background:none !important", 0);
}
- 1. 使用kendoEditor從MVC中的HTML TextArea中刪除所有標記
- 2. 使用jquery/javascript刪除html標記
- 3. 使用javascript刪除HTML h1空標記
- 4. 刪除除標記外的所有html標記
- 5. 刪除HTML標記與JavaScript
- 6. 使用dom從HTML中刪除所有內聯樣式tage
- 7. ReactJS刪除樣式標記
- 8. 如何使用php刪除所有img標籤中的樣式?
- 9. 如何刪除所有樣式的標記,不會jQuery的
- 10. 的Html標記背景
- 11. 使用標記刪除所有ImageView
- 12. 刪除HTML頁面中的所有JavaScript
- 13. CSS/Javascript背景樣式
- 14. 刪除iFrame的html標籤的樣式
- 15. 從rails中的屬性中刪除所有html標記
- 16. 使用emgucv刪除背景
- 17. 使用jQuery刪除所有元素的背景顏色/圖像
- 18. 刪除HTML頁面的樣式標籤
- 19. 我怎樣才能刪除所有的標記,除了從PHP解析的HTML允許列表中刪除PHP
- 20. 使用javascript從頭刪除javascript標記
- 21. Рhppreg_replace - 刪除除html標記以外的所有文本IMG
- 22. SED刪除除鏈接以外的所有HTML標記
- 23. 使用C#從HTML中刪除樣式和JavaScript#
- 24. HTML從iframe中刪除背景
- 25. 從所有HTML標記中刪除特定的類
- 26. 刪除文本中的所有HTML標記+內容
- 27. 試圖從標題中的圖像中刪除所有樣式
- 28. 通過javascript刪除html元素樣式
- 29. 使用jquery從html頁面中刪除樣式標籤
- 30. 使用JavaScript刪除HTML中的所有表格
'document.childNodes'似乎比'document.querySelectorAll(*)更快;'http://jsperf.com/childnodes-vs-queryselectorall – Kaiido
有一個小問題,它比遇到像:
text
– levkaster是的,因爲'document.childNodes'是一個屬性存根,而'document.querySelectorAll(*);'是一個函數存根,執行,這就是爲什麼屬性存根總是比別人快, –