小编nia*_*ian的帖子

使用DOM在onclick中获取元素id

我正在尝试访问被提取的元素的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)

它有效,但我不明白为什么会这样.

javascript

5
推荐指数
1
解决办法
488
查看次数

使用setInterval函数在JavaScript中创建动画

我想使用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)

html javascript css

0
推荐指数
1
解决办法
477
查看次数

标签 统计

javascript ×2

css ×1

html ×1