所以我有多个具有相同ID'stick'的div。我想遍历所有这些元素并给每个元素一个随机的高度。这是我尝试过的:
<script type="text/javascript">
for(var i = 0; i < 47; i++) {
var rand = 200;
document.getElementsById('stick')[i].style.height= rand+'px';
}
</script>
Run Code Online (Sandbox Code Playgroud)
这段代码不会令人遗憾地工作。我想念什么吗?
谢谢。
您不应为多个元素添加相同的ID。使用类名。并且document.getElemetsById不是定义的函数,仅document.getElementById(不带“ s”)应返回一个元素。
HTML:
<div class="stick"> </div>
<div class="stick"> </div>
Run Code Online (Sandbox Code Playgroud)
JS:
<script type="text/javascript">
var divs = document.getElementsByClassName('stick');
for(var i = 0; i < divs.length; i++) {
var rand = 200 * Math.random();
divs[i].style.height= rand+'px';
}
</script>
Run Code Online (Sandbox Code Playgroud)
这可能有效。但是我建议使用jQuery框架进行JavaScript编码,因为这些行在jQuery中变得更简单:
<script type="text/javascript">
$('.stick').each(function(){ //iterates all elements having stick class
$(this).height(200 * Math.random()); //inside the callback the 'this' is the current html element. etc ...
});
</script>
Run Code Online (Sandbox Code Playgroud)
jQuery主页:http : //jquery.com/
快速包括到您的网站,只需从头部的CDN url导入jQuery:
<head>
...
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
</head>
Run Code Online (Sandbox Code Playgroud)