不知道
已解决,是结构问题,不细心导致
提示为空,说明你没有获取到正确的DOM元素,用console.log检查下。
window.onload=function(){
var menu = document.getElementById('menu');
var item = menu.getElementsByTagName('div');
for(var i = 0; i < item.length; i++) {
item[i].onclick = function() {
for(var i = 0; i < item.length; i++) {
item[i].children[1].style.display = 'none';
}
this.children[1].style.display = 'block';
}
}
window.onload=function(){
window.onload 后面是一个等于
typeof id == 你写了3个等号
很简单,在你的onmouseout中重新定义了定时器。把定时器var timer改成 timer即可
应该是js这个脚本的引用出现问题
this : title[i].id ==><li id="0" .......
title[i] : <li > </li> ==> 0
<li > </li> ==> 1
<li > </li> ==> 2
<li > </li> ==> 3
<li > </li> ==> 4
......
divs[i] : 错误 , divs 没有for 循环 , i 是title 循环的 i ,不是 divs 的 i
源码发出来看看呗
循环的时候没有清空样式
你的第8行代码, 应该是 <div id="content"> 注意 “=” 和 “==” 的区别
你函数里定义的是获取ID 方法 通过仿写$ 引出来 ,下面var 的时候就不应该复用了 要么你就吧上面的$函数 封装好一点,加上tagName ById 等获取方法( if 判断) ,要么你就在下面直接element.getElement...直接写 要根据id 类名还是标签名随你找
你要是熟悉了js 就试试jquery 引个包 直接$(' ')获取
不过我看你也应该是刚学js
总之 是你函数封装的问题 既然封装了就不要在下面重复写 要么就别封装 直接 类似 var tab = document.getElementByTagName,或者ByName 之类的AIP 获取
不明白,能说的通俗点吗?
是不是(titles.length!=divs.length)时,直接退出代码,
不知道什么原因 我索引写titles[i].index=i;就付不上值 titles[i].id=i;就可以
还有属性叫aa的吗?索引一般用for循环的i就可以了
你应该先贴出你的代码片段
var titles=$('notice-tit').getElementsByTagName('li'),
divs=$('notice-con').getElementsByTagName('div');
结果一样,但是用$()更快,更效率
我用你的js代码测试正常,你看一下你的html的id的命名和js中的对应吗?然后看一下控制台报了什么错误
应该是li标签里不带index属性吧!只有标签带的属性,标签里面才会显示啊!你换成value 、title属性都可以看的到,标签不带的属性不显示,但自定义之后照样运行。
notice-tit和notice-con是类选择器,也有定于 id 啊
var titles=$('notice-tit').getElementsByTagName('li');
这段代码是 获取id notice-tie 下的所有li标签
我不会 但是网页老是出提醒 怪烦的 我觉得我回答一下 网页就不会再弹出窗口了
overflow属性可以这样用么
因为这个id作为形参的是时候本来就是string属性所以不用带,但是写notice-tit这种的时候是一个字符串所以需要带,至于你为什么alert不出来,我自己试了一下是可以的,可能你html里的类名没写对
老师讲解是用 "titles.length" 做循环 (for(var i=0;i<titles.length;i++)),因此this 代表 titles
你sublime和dw的代码都不一样
上面的id传入的是一个字符串等于下面$('tit')中的‘tit’,所以上面不用加引号