
js tab切换问题
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
window.onload=function()
{
var h2list=document.getElementById("tagtest").getElementsByTagName("h2");
var ddlist=document.getElementById("tagtest").getElementsByTagName("dd");
/*h2list[0].onclick=function()
{
ddlist[0].style.display="block";
ddlist[1].style.display="none";
ddlist[2].style.display="none";
ddlist[3].style.display="none";
}
h2list[1].onclick=function()
{
ddlist[1].style.display="block";
}
h2list[2].onclick=function()
{
ddlist[2].style.display="block";
}
h2list[3].onclick=function()
{
ddlist[3].style.display="block";
}*/
var i;
for(i=0; i <4; i++)
{
ddlist[i].style.display="none";
h2list[i].onclick=function()
{
ddlist[i].style.display="block";
}
}
}
</script>
</head>
<body>
<dl id="tagtest">
<dt>
<h2>0</h2>
<h2>1</h2>
<h2>2</h2>
<h2>3</h2>
</dt>
<dd>0</dd>
<dd>1</dd>
<dd>2</dd>
<dd>3</dd>
</dl>
</div>
</body>
</html>
错误提示:
网页错误详细信息
消息: 'ddlist[...].style' 为空或不是对象 展开
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
window.onload=function()
{
var h2list=document.getElementById("tagtest").getElementsByTagName("h2");
var ddlist=document.getElementById("tagtest").getElementsByTagName("dd");
/*h2list[0].onclick=function()
{
ddlist[0].style.display="block";
ddlist[1].style.display="none";
ddlist[2].style.display="none";
ddlist[3].style.display="none";
}
h2list[1].onclick=function()
{
ddlist[1].style.display="block";
}
h2list[2].onclick=function()
{
ddlist[2].style.display="block";
}
h2list[3].onclick=function()
{
ddlist[3].style.display="block";
}*/
var i;
for(i=0; i <4; i++)
{
ddlist[i].style.display="none";
h2list[i].onclick=function()
{
ddlist[i].style.display="block";
}
}
}
</script>
</head>
<body>
<dl id="tagtest">
<dt>
<h2>0</h2>
<h2>1</h2>
<h2>2</h2>
<h2>3</h2>
</dt>
<dd>0</dd>
<dd>1</dd>
<dd>2</dd>
<dd>3</dd>
</dl>
</div>
</body>
</html>
错误提示:
网页错误详细信息
消息: 'ddlist[...].style' 为空或不是对象 展开
1个回答
展开全部
代码是正确的,可以正确执行,不会产生运行时错误.
但你注释掉的代码有问题,因为你的ddlist被声明在function里,是一个局部变量,那么你在为h2list[n].onclick绑定函数内部调用这个局部变量就会出问题,你可以将ddlist声明于函数以外,或是在onclick事件处理函数内重新从DOM中获取元素.
但你注释掉的代码有问题,因为你的ddlist被声明在function里,是一个局部变量,那么你在为h2list[n].onclick绑定函数内部调用这个局部变量就会出问题,你可以将ddlist声明于函数以外,或是在onclick事件处理函数内重新从DOM中获取元素.
更多追问追答
追问
window.onload=function()
{var h2list=document.getElementById("tagtest").getElementsByTagName("h2");
var ddlist=document.getElementById("tagtest").getElementsByTagName("dd");
var i;
for(i=0; i <4; i++)
{
ddlist[i].style.display="none";
h2list[i].onclick=function()
{
ddlist[i].style.display="block";
}
}
}
点击dt之后,不显示相应的DD元素,ddlist放在外面也出错
追答
var h2list,ddlist; // 在这里声明变量
window.onload=function(){
h2list=document.getElementById("tagtest").getElementsByTagName("h2");
ddlist=document.getElementById("tagtest").getElementsByTagName("dd");
var i;
for(i=0; i
原因我上面已经说得很清楚了,由于你在onclick事件处理函数中试图调用非全局变量,无法取到变量值,换一种方式传递参数就行了.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询