做了个HTML静态页面,想实现文字按照不同的DIV块交替显示。
现在代码已经写好,一共4个DIV,显示到第二个DIV块:“产品大类B”的时候,就不动了,在IE中是显示网页中有错误:
“document.getElementById(...)为空,或不是对象” 全部的HTML和JS代码段,分别如下,请大家指教一下,谢谢:一,html代码段:<html>
<head>
<title>test</title>
<link href="css/st.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/test.js"></script>
</head>
<body><div class="icompanyhot_m">
<div class="icompanyhot_b">
<div class="icompanyhot">
<div class="ititle01">代理产品展示</div>
<div class="icompanyhot_cont" id="desc1">
<h2><a href="#" target="_self">产品大类A</a></h2>
<p>1. 代理线等相关服务。
2. 可开...</p>
</div>
<div class="icompanyhot_cont" id="desc2" style="display:none">
<h2><a href="#" target="_self">产品大类B</a></h2>
<p>1. 代理 相关服务。
2. 接受...</p>
</div>
<div class="icompanyhot_cont" id="desc3" style="display:none">
<h2><a href="#" target="">产品大类C</a></h2>
<p>公司拥有一支充满活力的、网络化和专...</p>
</div>
<div class="icompanyhot_cont" id="desc4" style="display:none">
<h2><a href="#" target="_self">软件开发A</a></h2>
<p>1. 自动进口许可证。
2. 旧机出入...</p>
</div>
<h6 class="clear"></h6>
<div class="ifocus_list num">
<a onmouseover="javascript:showit(1)" onmouseout="playit()" class="current" id="num1">01</a>
<a onmouseover="javascript:showit(2)" onmouseout="playit()" class="link" id="num2">02</a>
<a onmouseover="javascript:showit(3)" onmouseout="playit()" class="link" id="num3">03</a>
<a onmouseover="javascript:showit(4)" onmouseout="playit()" class="link" id="num4">04</a>
</div>
</div>
</div>
</div></body>
</html>
二,JS代码段(test.js文件)var MaxImg = 6;
var NowImg = 1;
var bStart = 0;
var bStop =0; //如果鼠标点击相应的数字,则bStop的值为1,否则图片进行自动切换,bStop的值为0;
var begin;
function initialization(){
bStop =0;
var next = NowImg + 1;
if(next == MaxImg+1){
NowImg = MaxImg;
next = 1;
}
if(bStop != 1){
if(bStart == 0){
bStart = 1;
begin = setTimeout('initialization()', 2000);
return;
}
else{
document.getElementById("desc" + next).style.display="";
document.getElementById("desc" + NowImg).style.display="none";
for (var i=1;i<7;i++){
document.getElementById("num"+i).className="link";
if(i == next){
document.getElementById("num"+i).className="current";
}
while(next==7){
document.getElementById("num").className="link";
}
}
if(NowImg == MaxImg)
NowImg = 1;
else
NowImg++;
}
begin = setTimeout('initialization()', 2000);
}
}function showit(x){
bStop=1;
clearTimeout(begin);
for (var i=1;i<=6;i++){
document.getElementById("desc" + i).style.display="none";
document.getElementById("num"+i).className="link";
if(i == x){
document.getElementById("desc" + i).style.display="block";
document.getElementById("num"+i).className="current";
}
}
}function playit(){
begin = setTimeout('initialization()', 2000);
}
begin = setTimeout('initialization()', 2000);
CSS代码段就不贴了。
现在代码已经写好,一共4个DIV,显示到第二个DIV块:“产品大类B”的时候,就不动了,在IE中是显示网页中有错误:
“document.getElementById(...)为空,或不是对象” 全部的HTML和JS代码段,分别如下,请大家指教一下,谢谢:一,html代码段:<html>
<head>
<title>test</title>
<link href="css/st.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/test.js"></script>
</head>
<body><div class="icompanyhot_m">
<div class="icompanyhot_b">
<div class="icompanyhot">
<div class="ititle01">代理产品展示</div>
<div class="icompanyhot_cont" id="desc1">
<h2><a href="#" target="_self">产品大类A</a></h2>
<p>1. 代理线等相关服务。
2. 可开...</p>
</div>
<div class="icompanyhot_cont" id="desc2" style="display:none">
<h2><a href="#" target="_self">产品大类B</a></h2>
<p>1. 代理 相关服务。
2. 接受...</p>
</div>
<div class="icompanyhot_cont" id="desc3" style="display:none">
<h2><a href="#" target="">产品大类C</a></h2>
<p>公司拥有一支充满活力的、网络化和专...</p>
</div>
<div class="icompanyhot_cont" id="desc4" style="display:none">
<h2><a href="#" target="_self">软件开发A</a></h2>
<p>1. 自动进口许可证。
2. 旧机出入...</p>
</div>
<h6 class="clear"></h6>
<div class="ifocus_list num">
<a onmouseover="javascript:showit(1)" onmouseout="playit()" class="current" id="num1">01</a>
<a onmouseover="javascript:showit(2)" onmouseout="playit()" class="link" id="num2">02</a>
<a onmouseover="javascript:showit(3)" onmouseout="playit()" class="link" id="num3">03</a>
<a onmouseover="javascript:showit(4)" onmouseout="playit()" class="link" id="num4">04</a>
</div>
</div>
</div>
</div></body>
</html>
二,JS代码段(test.js文件)var MaxImg = 6;
var NowImg = 1;
var bStart = 0;
var bStop =0; //如果鼠标点击相应的数字,则bStop的值为1,否则图片进行自动切换,bStop的值为0;
var begin;
function initialization(){
bStop =0;
var next = NowImg + 1;
if(next == MaxImg+1){
NowImg = MaxImg;
next = 1;
}
if(bStop != 1){
if(bStart == 0){
bStart = 1;
begin = setTimeout('initialization()', 2000);
return;
}
else{
document.getElementById("desc" + next).style.display="";
document.getElementById("desc" + NowImg).style.display="none";
for (var i=1;i<7;i++){
document.getElementById("num"+i).className="link";
if(i == next){
document.getElementById("num"+i).className="current";
}
while(next==7){
document.getElementById("num").className="link";
}
}
if(NowImg == MaxImg)
NowImg = 1;
else
NowImg++;
}
begin = setTimeout('initialization()', 2000);
}
}function showit(x){
bStop=1;
clearTimeout(begin);
for (var i=1;i<=6;i++){
document.getElementById("desc" + i).style.display="none";
document.getElementById("num"+i).className="link";
if(i == x){
document.getElementById("desc" + i).style.display="block";
document.getElementById("num"+i).className="current";
}
}
}function playit(){
begin = setTimeout('initialization()', 2000);
}
begin = setTimeout('initialization()', 2000);
CSS代码段就不贴了。
解决方案 »
- 求助SyntaxHighlighter高亮代码一行太长显示超出范围
- JS高亮的问题
- javascript
- JSP页面显示不全
- png图片上添加了事件“onclick”,可是使png的图片在IE6上实现透明后,添加在上面的“onclick”失效了,怎么回事?
- 请问怎样用JavaScript来检测IE、Firefox中有哪些数字签名证书,或是否安装了某个证书???
- 有一个棘手问题,关于鼠标位置显示DIV问题
- 请问如何通过让asp文件获得远程的数值或者html代码?谢谢您(我设想调用js文件)
- <img>被.Net的Repeate梆定后,怎么样用js获得该<img>的高和宽
- javasrcipt获取客户端的信息
- JavaScript中跨Iframe传值的问题
- 怎么使<input type="hidden">的value发生变化时运行方法
var NowImg = 1;
var bStart = 0;
var bStop =0; //如果鼠标点击相应的数字,则bStop的值为1,否则图片进行自动切换,bStop的值为0;
var begin;
function initialization(){
bStop =0;
var next = NowImg + 1;
if(next == MaxImg+1){
NowImg = MaxImg;
next = 1;
}
if(bStop != 1){
if(bStart == 0){
bStart = 1;
begin = setTimeout('initialization()', 2000);
return;
}
else{
document.getElementById("desc" + next).style.display="";
document.getElementById("desc" + NowImg).style.display="none";
for (var i=1;i<7;i++){
var tmpa = document.getElementById("num"+i);
if(!tmpa){
continue;
}
document.getElementById("num"+i).className="link";//这个位置num5,num6都没有 当然是null的了,我在他上边加了两行代码 你会明白,
if(i == next){
document.getElementById("num"+i).className="current";
}
while(next==7){
document.getElementById("num").className="link";
}
}
if(NowImg == MaxImg)
NowImg = 1;
else
NowImg++;
}
begin = setTimeout('initialization()', 2000);
}
}function showit(x){
bStop=1;
clearTimeout(begin);
for (var i=1;i<=6;i++){
document.getElementById("desc" + i).style.display="none";//这个位置也是一样的问题!先不给改了
document.getElementById("num"+i).className="link";//这个位置也是一样的问题!,当这个对象有时 ,才能使用属性,方法
if(i == x){
document.getElementById("desc" + i).style.display="block";
document.getElementById("num"+i).className="current";
}
}
}function playit(){
begin = setTimeout('initialization()', 2000);
}
begin = setTimeout('initialization()', 2000);
showit(x)中的for循环却是从 1 ~ 6。
前4个没问题,第5个开始当然找不到了。
不信你可以试试:
function showit(x){
bStop=1;
clearTimeout(begin);
for (var i=1;i<=6;i++){
alert(i+': '+document.getElementById("desc" + i));
document.getElementById("desc" + i).style.display="none";//这个位置也是一样的问题!先不给改了
document.getElementById("num"+i).className="link";//这个位置也是一样的问题!,当这个对象有时 ,才能使用属性,方法
if(i == x){
document.getElementById("desc" + i).style.display="block";
document.getElementById("num"+i).className="current";
}
}
}
for (var i=1;i<=6;i++){
var tmpB = document.getElementById("num"+i);//加了临时对象合法性的判断
if(!tmpB){
continue;
} document.getElementById("desc" + i).style.display="none";
var tmpC = document.getElementById("num"+i);//加了个临时对象的判断
if(!tmpC){
continue;
} document.getElementById("num"+i).className="link";
bStop=1;
clearTimeout(begin);
for (var i=1;i<=4;i++){//我把这里的i改成4了,还是报错对象不存在,为什么呢
document.getElementById("desc" + i).style.display="none";//这个位置也是一样的问题!先不给改了
document.getElementById("num"+i).className="link";//这个位置也是一样的问题!,当这个对象有时 ,才能使用属性,方法
if(i == x){
document.getElementById("desc" + i).style.display="block";
document.getElementById("num"+i).className="current";
}
}
}
谢谢!
我这样理解的,一共4个DIV,我只要把initialization()里面的for循环数值改成4就不应该存在对象为空报错了,可是为什么事实上它还报错呢?代码段:
var MaxImg = 4;
var NowImg = 1;
var bStart = 0;
var bStop =0; //如果鼠标点击相应的数字,则bStop的值为1,否则图片进行自动切换,bStop的值为0;
var begin;
function initialization(){
bStop =0;
var next = NowImg + 1;
if(next == MaxImg+1){
NowImg = MaxImg;
next = 1;
}
if(bStop != 1){
if(bStart == 0){
bStart = 1;
begin = setTimeout('initialization()', 2000);
return;
}
else{
document.getElementById("desc" + next).style.display="";
document.getElementById("desc" + NowImg).style.display="none";
for (var i=1;i<4;i++){
var tmpa = document.getElementById("num"+i);
if(!tmpa){
continue;
}
document.getElementById("num"+i).className="link";
if(i == next){
document.getElementById("num"+i).className="current";
}
while(next==4){
document.getElementById("num").className="link";
}
}
if(NowImg == MaxImg)
NowImg = 1;
else
NowImg++;
}
begin = setTimeout('initialization()', 2000);
}
}
function playit(){
begin = setTimeout('initialization()', 2000);
}
begin = setTimeout('initialization()', 2000);function showit(x){
bStop=1;
clearTimeout(begin);
for (var i=1;i<=4;i++){
//alert(i+': '+document.getElementById("desc" + i));
document.getElementById("desc" + i).style.display="none";
document.getElementById("num"+i).className="link";
if(i == x){
document.getElementById("desc" + i).style.display="block";
document.getElementById("num"+i).className="current";
}
}
}
你看上面了没?我把maxImage已经改成4了才回的贴。至于你之前回的帖子,我也改了,根本就解决不了问题。
num
后边少东西
谢谢这位同学,问题就在这里,改成下面这样后,不再报错:
var MaxImg = 4;
var NowImg = 1;
var bStart = 0;
var bStop =0; //如果鼠标点击相应的数字,则bStop的值为1,否则图片进行自动切换,bStop的值为0;
var begin;
function initialization(){
bStop =0;
var next = NowImg + 1;
if(next == MaxImg+1){
NowImg = MaxImg;
next = 1;
}
if(bStop != 1){
if(bStart == 0){
bStart = 1;
begin = setTimeout('initialization()', 2000);
return;
}
else{
document.getElementById("desc" + next).style.display="";
document.getElementById("desc" + NowImg).style.display="none";
for (var i=1;i<5;i++){
var tmpa = document.getElementById("num"+i);
if(!tmpa){
continue;
}
document.getElementById("num"+i).className="link";
if(i == next){
document.getElementById("num"+i).className="current";
}
while(next==5){
document.getElementById("num"+i).className="link";
}
}
if(NowImg == MaxImg)
NowImg = 1;
else
NowImg++;
}
begin = setTimeout('initialization()', 2000);
}
}
function playit(){
begin = setTimeout('initialization()', 2000);
}
begin = setTimeout('initialization()', 2000);function showit(x){
bStop=1;
clearTimeout(begin);
for (var i=1;i<=4;i++){
//alert(i+': '+document.getElementById("desc" + i));
document.getElementById("desc" + i).style.display="none";
document.getElementById("num"+i).className="link";
if(i == x){
document.getElementById("desc" + i).style.display="block";
document.getElementById("num"+i).className="current";
}
}
}