我需要的是遍歷某個開始元素的dom,然後遍歷開始元素下的所有元素。使用document.getElementsByTagName遍歷dom元素,傳遞元素作爲jquery對象
這是我到目前爲止所做的。
function iterDomFromStartElem = function(startElem, callBackFunc) {
if (startElem !== null) {
var items = startElem.getElementsByTagName("*");
for (var i = 0; i < items.length; i++) {
callBackFunc(items[i]);
}
}
}
我之所以需要遍歷從一些開始元素的DOM是因爲我們的團隊最近得到了實現了字體大小調整的請求;然而,我們開發的網站靜態與字體大小在許多不同的地方使用像素。我意識到更簡單的方法是重構現有的代碼,在頁面的根部設置一個靜態字體大小,並在其中使用em的百分比,這樣,如果業務所有者想要在頁面上調整大小,我們所要做的就是在一個地方增加字體大小。這個重構需要很多小時,而且我的任務是使用最少的工時。
所以,後來,我有一個回調像這樣定義,
function resizeFont(startElem, scale) {
iterDomFromStartElem(startElem, function(node) {
// get current size of node, apply scale, increase font size
}
}
使用這種原料的JavaScript的工作,但我遇到麻煩的字體大小,如果它是一個CSS類中聲明。
我知道,jQuery有一個CSS屬性,如果我有一個jQuery對象,我能做到$(本)的.css(....),因此,
當我打電話callBackFunc(項[I] ),如何將項[i]轉換爲jquery對象,以便在我的回調函數中,我可以執行node.css(......)?
我想我可以做$(items [i] .id),也許這將是最簡單的。
即使在css類中聲明該字體大小並且該css類附加到該元素,是否有使用javascript更容易確定字體大小的方法?
您可以使用!重要的相似大小添加css以覆蓋默認設置。但是,編寫一個php腳本來編輯實際的css文件,然後用javascript來完成它似乎更容易。爲什麼要讓用戶的瀏覽器做這種工作? – qw3n