我正在尝试访问被提取的元素的id,getElementsByTagName但是我收到了一个错误:
var divs=document.getElementsByTagName("div");
for(var i=0;i<divs.length;i++){
divs[i].onclick=function(){
alert(divs[i].id);
}
}Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<div id="1">1</div>
<div id="2">2</div>
<div id="3">3</div>
<div id="4">4</div>
<div id="5">5</div>
<div id="6">6</div>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
错误是:
未捕获的TypeError:无法读取未定义的属性"id"
当我改变
alert(divs[i].id);
Run Code Online (Sandbox Code Playgroud)
至
alert(this.id);
Run Code Online (Sandbox Code Playgroud)
它有效,但我不明白为什么会这样.
我想使用setInterval函数在JavaScript中创建动画,但我遇到了一个问题.
我用了:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<style>
.main{
width:80%;
margin:auot;
text-align: center;
}
p{
position:absolute;
top:0px;
}
</style>
</head>
<body>
<div class="main">
<h1>bianti</h1>
</div>
<p id="mydiv">ssss</p>
<script type="text/javascript" >
var obj=document.getElementById('mydiv');
function changeStyle(){
obj.style.top=parseInt(obj.style.top)+200+'px'
}
setInterval(changeStyle,1000);
</script>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
但它不起作用.我使用内联css更换代码并替换嵌入式css.然后它工作,但我不知道为什么.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<style>
.main{
width:80%;
margin:auot;
text-align: center;
}
</style>
</head>
<body>
<div class="main">
<h1>bianti</h1>
</div>
<p id="mydiv" style="position:absolute;top:0;">ssss</p>
<script type="text/javascript" >
var obj=document.getElementById('mydiv');
function changeStyle(){
obj.style.top=parseInt(obj.style.top)+200+'px'
} …Run Code Online (Sandbox Code Playgroud)