我試圖創建一個函數,它打印類的CSS值:閱讀和使用純JavaScript
- 抓鬥元素與特定的數據元素,即「數據findDeclaration =元素」
- 從這個元素,類被讀取
- 它讀出所有指定爲這個類
- 另一個具體的數據元素(即數據writeDeclaration =「元件」)的所有類規則/數值內顯示的CSS值。
這裏就是我至今:
HTML:
<span class="slap0" data-finddeclaration="element">The great white fox</span>
<div class="description" data-writedeclaration="element">
</div>
<span class="slap1" data-finddeclaration="element">The great white fox</span>
<div class="description" data-writedeclaration="element">
</div>
<span class="slap2" data-finddeclaration="element">The great white fox</span>
<div class="description" data-writedeclaration="element">
</div>
<span class="slap3" data-finddeclaration="element">The great white fox</span>
<div class="description" data-writedeclaration="element">
</div>
JS:
function readOutCssRules() {
var dataElement = document.querySelectorAll('[data-finddeclaration="element"]');
var classRules = document.styleSheets[0].rules || document.styleSheets[0].cssRules;
var writeDataElement = document.querySelectorAll('[data-writedeclaration="element"]');
for (var i = 0; i < dataElement.length; i++) {
dataElement[i].className;
if (classRules[i].selectorText == "." + dataElement[i].className) {
console.log(classRules[i].cssText);
writeDataElement[i].innerHTML = classRules[i].cssText;
}
}
}
readOutCssRules();
但隨着預期的功能無法正常工作。 任何想法? 在此先感謝。
你在你的瀏覽器控制檯得到什麼錯誤? –
我確實得到了類的內容,但是如果我在html結構中添加更多元素,它將不會顯示它們。 另外,我需要看到規則,而不是類名,正確顯示在相應的div內。 我不被允許使用jQuery,否則這不會有太大的問題:) – Sidius
爲什麼你要檢查CSS == Class? – HudsonPH