如何在JavaScript中更改Div子元素上的文本颜色
网页的一部分包含如下所示的DIV元素:
<div class="nodePedigree node male " id="0:7" style="height:0.57em; width:2.95em; left:7.076em; top:0.07959999em;" T:NodeId="0:7">
<div class="nodeContent">
<div class="vAlignContent">
<h6 class="nodeTitle">John Doe</h6>
<div class="nodeInfo">1860-1915</div>
</div>
</div>
</div>
<div class="nodePedigree node female " id="0:5" style="height:0.57em; width:2.95em; left:3.814em; top:4.081em;" T:NodeId="0:5">
<div class="nodeContent">
<div class="vAlignContent">
<h6 class="nodeTitle">Jane Doe</h6>
<div class="nodeInfo">1903-2000</div>
</div>
</div>
</div>
如您所见,DIV元素放置在其他DIV元素中。
这些只是网页中类似的许多DIV元素中的两个。"父"DIV元素可以通过id的值来区分。在本例中,它们是id="0:7"和id="0:5",但在其他情况下,它们可以是"0:1"、"0:2"..."0:20"、"0:21"等。
在JavaScript中,我试图找到特定的"父"DIV元素,然后更改关联的"子"DIV元素(称为"nodeContent")的背景颜色。换句话说,我不想更改所有"nodeContent"DIV元素的背景颜色,而只想更改特定元素的背景颜色。例如,我想将"nodeContent"DIV元素的背景颜色更改为"red",该元素是id="0:5"的"父"DIV元素的"子"元素。
我知道如何使用以下代码查找"Parent"DIV:
var myDiv = document.getElementById('0:5');
但我不知道如何找到关联的名为"nodeContent"的DIV"子"元素(这样我就可以更改背景颜色)。
解决方案
在父节点上调用getElementsByClassName()
,然后使用列表中的第一个节点:
var parent = document.getElementById('0:5');
var nodes = parent.getElementsByClassName('nodeContent');
nodes[0].style.backgroundColor = '#F00';
<div class="nodePedigree node male " id="0:7" style="height:0.57em; width:2.95em; left:7.076em; top:0.07959999em;" T:NodeId="0:7">
<div class="nodeContent">
<div class="vAlignContent">
<h6 class="nodeTitle">John Doe</h6>
<div class="nodeInfo">1860-1915</div>
</div>
</div>
</div>
<div class="nodePedigree node female " id="0:5" style="height:0.57em; width:2.95em; left:3.814em; top:4.081em;" T:NodeId="0:5">
<div class="nodeContent">
<div class="vAlignContent">
<h6 class="nodeTitle">Jane Doe</h6>
<div class="nodeInfo">1903-2000</div>
</div>
</div>
</div>
相关文章