2012-09-16 29 views
2

我想寫一個書籤來糾正他人網頁上的文本樣式。特別是,我想找到任何帶有「text-align:justify」的元素,並將它們更改爲「text-align:left」。我不知道如何找到這些元素。因爲這是一個在任意網頁上使用的書籤,所以我寧願不依賴任何Javascript庫(jQuery等)來提供幫助。如何找到所有具有特定CSS樣式但沒有JS庫的元素?

+0

如果你試圖讓內容更具可讀性,你可以永遠只是使用http://readability.com – Mark

+0

@Mark:謝謝,我知道readability.com,Evernote也有類似的服務。我想嘗試我自己的解決方案。 –

+0

爲什麼沒有圖書館?你自己的解決方案不會成爲圖書館嗎? – 2013-06-26 21:56:15

回答

1

這將找到與text-align: justify的所有元素,並將邊框設置爲紅色。它應該足以讓你開始。 注意:這不是非常有效,但沒有一個好的有效的解決方案來處理您的請求。爲了提高性能,請嘗試僅搜索相關標籤。 (也許你只需要檢查Ps和資料覈實?)

// Get all elements 
var els = document.getElementsByTagName('*'); 
// Search for style: text-align = justify. 
for(var i = 0, el; el = els[i]; i++) { 
    if(getComputedStyle(el).textAlign == 'justify') { 
     el.style.border = '1px solid #f00'; 
    } 
} 
1

這裏:

var walkTheDOM = function walk (node, func) { 
    if (node.nodeType !== 1) return; 
    func(node); 
    node = node.firstChild; 
    while (node) { 
     walk(node, func); 
     node = node.nextSibling; 
    } 
}; 

walkTheDOM(document.body, function (elem) { 
    if (getComputedStyle(elem).textAlign === 'justify') { 
     elem.style.textAlign = 'left'; 
    } 
}); 

現場演示:http://jsfiddle.net/W3BUe/1/

+0

'document.getElementsByTagName'不會更快和/或更高效嗎?這並不重要,我只是想知道,因爲這是一個本地方法 – Ian

+0

@ianpgall我不知道哪一個會更有效率,但我希望兩者都相當快。 –

+0

不是瀏覽器agnostik – 2012-09-17 09:05:49

相關問題