var targetDiv = document.getElementById("past").getElementsByClassName("ball ball-8")[0];
if (targetDiv.length>0) {
alert("Black roll");
}
else alert("something else");
这是HTML代码:
<div id="past">
<div data-rollid="69106" class="ball ball-8">13</div>
<div data-rollid="69107" class="ball ball-1">7</div>
<div data-rollid="69108" class="ball ball-1">5</div>
<div data-rollid="69109" class="ball ball-8">13</div>
<div data-rollid="69115" class="ball ball-8">8</div></div>
问题是它永远不会运行If中的代码。 据我所知
var targetDiv = document.getElementById("past").getElementsByClassName("ball ball-8")[0];
应该返回一个数组吗?
答案 0 :(得分:1)
让我们分解你在这里做的事情。你真的在一个步骤中做了三个步骤。
document.getElementById("past").getElementsByClassName("ball ball-8")[0];
首先,您将获得ID为past
的元素。这显然会返回一个元素。
接下来,在该元素中,您将获得具有类名ball
和ball-8
的所有元素。那将返回一个元素列表。
最后,您使用数组语法来获取该数组的第0个元素。这意味着最终,您将返回一个元素:第一个元素是通过调用getElementsByClassName
返回的。如果要返回完整的元素列表,则应从链的末尾删除[0]
。
答案 1 :(得分:0)
我想要做的就是让Div的最后一个孩子“过去”,我找到了办法。
var lastRoll = document.getElementById("past");
var lastChild = past.lastChild.innerHTML;
我之前解决问题的方法非常糟糕。