在JavaScript 中從外部CSS 存取元素樣式
使用在外部CSS 檔案中定義樣式的HTML 元素時,可以使用JavaScript 操作這些樣式。但是,要達到預期的結果,需要遵循特定的準則。
在給定的範例中,以下程式碼用於變更
的顏色點擊時帶有主類別的元素:
function selectHome() { console.log("test"); document.getElementsByClassName("home").style += "background-color:green;"; }
問題:
這段程式碼的問題是getElementsByClassName() 傳回一個NodeList,一個即時列表所有符合的元素。指派給該清單的 style 屬性會直接修改所有元素的樣式。要定位特定元素,您需要存取清單中的單一元素。
解決方案:
更好的方法是使用querySelector() 來選擇第一個匹配的元素,然後修改其樣式:
function selectHome() { const homeElement = document.querySelector(".home"); if (homeElement) { homeElement.style.backgroundColor = "green"; } }
或者,如果你知道總是只有一個元素具有給定的類,您可以使用getElementByClassName()[0]直接訪問它。但是,通常不建議這樣做,因為它嚴重依賴具有唯一類別的假設,並且如果存在多個匹配元素,可能會導致意外行為。
其他注意事項:
以上是如何使用JavaScript高效修改外部CSS中定義的元素樣式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!