[英]Change font color of nested HTML element with JavaScript
我想要的字體顏色改變a
類speed
以red
。
( a
不能得到自己的ID或類)
如何使用JavaScript做到這一點?
<!DOCTYPE html>
<html>
<body>
<div class="gun">
<a href="#">Hello World!</a>
</div>
<div class="speed">
<a href="#">Hello World!</a>
</div>
<script>
...
</script>
<div>
</body>
</html>
使用document.querySelector
選擇a
標簽並使用style.color
更改顏色:
document.querySelector('.speed a').style.color = 'red';
<div class="gun"> <a href="#">Hello World!</a> </div> <div class="speed"> <a href="#">Hello World!</a> </div>
假設您只有一個<a>
,那么使用querySelector
發布的較早答案是正確的。 那是因為它僅選擇與選擇器匹配的第一個元素。
如果您的DOM中碰巧有多個.speed a
實例, .speed a
可以改用document.querySelectorAll
。 這將為您提供一個與選擇器匹配的所有元素的可迭代列表; 然后您可以遍歷所有這些對象。
var linksToChange = document.querySelectorAll(".speed a") linksToChange.forEach(function(toChange) { toChange.style.color = "red"; });
<div class="gun"> <a href="#">Hello World!</a> </div> <div class="speed"> <a href="#">Hello World #1!</a> <div id="someDiv"> <a href="#">Hello World #2!</a> </div> </div> <div class="speed"> <a href="#">Hello World #3!</a> </div>
如果只想突出顯示.speed
元素的直接子元素<a>
,則可以將選擇器字符串更改為.speed > a
。 在上述情況下,這將成為“ Hello World#2!”。 保留默認顏色,因為它嵌套在div
。
另外,我假設您要動態更改鏈接,而不只是簡單地從一開始就將其更改為紅色。 正如其他人指出的那樣,如果您希望鏈接簡單地為紅色並保持紅色,則應使用CSS而不是JavaScript設置樣式。
您可以使用document.querySelecotr()
進行選擇,然后將樣式更改為所需的樣式
document.querySelector(".speed a")
document.querySelector(".speed a").style.color = "red"
<div class="gun"> <a href="#">Hello World!</a> </div> <div class="speed"> <a href="#">Hello World!</a> </div>
在我的拙見中,不使用課程來應用樣式是一個糟糕的選擇。 您沒有指定觸發樣式更改的內容,因此假定您希望在加載樣式時進行更改。
document.querySelector('.speed>a').style.color = "red";
<div class="gun"> <a href="#">Hello World!</a> </div> <div class="speed"> <a href="#">Hello World!</a> </div>
由於JavaScript樣式是從CSS文件中“隱藏”的,並且需要更改代碼(例如,將顏色從紅色更改為藍色)時,需要更改代碼,因此這是一種糟糕的樣式維護方式。
您應該改用現有的類。
.speed>a{ color: red; }
<div class="gun"> <a href="#">Hello World!</a> </div> <div class="speed"> <a href="#">Hello World!</a> </div>
使用document.querySelector('.speed a')
,然后將style.color更改為紅色。
有關選擇器的更多信息,請參見此CSS選擇器
document.querySelector('.speed a').style.color = 'red';
<div class="gun"> <a href="#">Hello World!</a> </div> <div class="speed"> <a href="#">Hello World!</a> </div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.