javascript - JS for...in循环的问题。for (var p in oSkin) oSkin[p].className = "";
本文介绍了javascript - JS for...in循环的问题。for (var p in oSkin) oSkin[p].className = "";的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html">
<title>网页换肤</title>
<style>
...
</style>
<link href="green.css" rel="stylesheet" type="text/css">
<script>
window.onload = function () {
var oLink = document.getElementsByTagName("link")[0];
var oSkin = document.getElementById("skin").getElementsByTagName("li");
for (var i = 0; i < oSkin.length; i++) {
oSkin[i].onclick = function () {
for (var p in oSkin) oSkin[p].className = "";
this.className = "current";
oLink['href'] = this.id + ".css";
}
}
}
</script>
</head>
<body>
<div id="outer">
<ul id="skin">
<li id="red" title="红色">红</li>
<li id="green" class="current" title="绿色">绿</li>
<li id="black" title="黑色">黑</li>
</ul>
<ul id="nav">
<li><a href="#">新闻</a></li>
<li><a href="#">娱乐</a></li>
<li><a href="#">体育</a></li>
<li><a href="#">电影</a></li>
<li><a href="#">音乐</a></li>
<li class="last"><a href="#">旅游</a></li>
</ul>
</div>
</body>
</html>
JS代码里的这一个for (var p in oSkin) oSkin[p].className = "";
不是很明白,为什么声明了一个p变量,可以直接用oSkin[p]来设置classname的属性?
望解答,万分感谢。
解决方案
下次写for循环记得用大括号包裹起来
for(p in obj)如果obj是数组,p就是下标,如果obj是对象,p就是属性名称
这篇关于javascript - JS for...in循环的问题。for (var p in oSkin) oSkin[p].className = "";的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文