js的一点小问题 本帖最后由 xiaofen8 于 2012-10-15 15:00:43 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <script>window.onload=function(){ alert(document.getElementById("main").getElementsByTagName("div")[1].innerHTML)}</script><div id="main"> <div></div><div>test</div></div>上面这样写并不会有错的。document.getElementById("main").getElementsByTagName("div")[1]在各浏览器中应该都是可以使用的 document.getElementById("main").getElementsByTagName("div")[1]这样写是没问题的。 你在IE几里面测试的?我从IE6~8一点问题都没发现你要么就贴出使用部份的相关代码和DOM结构。要么就自己参照我上面的用法可以肯定的是:document.getElementById("main").getElementsByTagName("div")[1]功能是:获取id=main容器中的第二个div标签这样用不会有什么兼容性问题,也不会出错。如果你使用不行,要么就是这条语句执行的时候对象不存在,要么就是DOM不是那样的结构 看一下有没有2个以上的divalert(document.getElementById("main").getElementsByTagName("div").length); 果断 JQuery ! 方便,好用,又解决兼容性问题 你看一下有没有两个div,如果只有一个的话,把[1]改成[0] function goto(index) { var maincon = document.getElementById("main"); var auxcon = document.getElementById("auxiliary"); for (var i = 0; i < maincon.childNodes.length; ++i) if (index - i) maincon.childNodes[i].style.display = "none"; else switch(index){ case 1: if (uname){ maincon.childNodes[i].style.display = "inline";//topic auxcon.childNodes[1].style.display = "inline";//sidebar maingoto(0); } else{ maincon.childNodes[i].style.display = "none";//topic auxcon.childNodes[1].style.display = "none";//sidebar index = 5; } break; default: maincon.childNodes[i].style.display = "inline";//topic } }把这段js黏贴上来,这段代码在ie里可以正确运行,但是在firefox里就不行了,childNodes都是div,我把childNodes改为getElementsByTagName("div")还是不行,在ie里也不行要么就是DOM不是那样的结构这句话是什么意思?我是新手啦 其实只要你把childNodes改成children 就好了。。兼容问题。 children标准的?空白节点是什么啊 和innerHTML 一样,虽然不是标准的,但是在各个浏览器里都可以用。 你可以获取一下子节点,然后alert一下子节点的length就知道了。或者alert一下nodeType。 就是<div><div></div> //这里的换行在火狐貌似就会被看成其中的一个子节点。<div></div></div> 但是我的代码里都没有空行的,把getElementsByTagName("div")换成chilren就可以正确运行了,我就搞不懂了 js如何扩展方法 js实现单元格改变背景色 Extjs CardLayout问题 各位朋友,我们说javascript是不是好无奈,请看下面的例子,应当如何解释啊? onClick="f();"不响应 求一个正则 求浮动广告代码 类似http://blog.sina.com.cn/m/xujinglei下面的浮动广告 js打开一个新窗体之后执行该窗体的js方法 extjs tooltip HTML的input框js的相关问题 只用js不用CSS实现下拉菜单 javascript/jquery跟activex交互,即与object对象交互
window.onload=function(){
alert(document.getElementById("main").getElementsByTagName("div")[1].innerHTML)
}
</script>
<div id="main">
<div></div>
<div>test</div>
</div>上面这样写并不会有错的。
document.getElementById("main").getElementsByTagName("div")[1]在各浏览器中应该都是可以使用的
这样写是没问题的。
你要么就贴出使用部份的相关代码和DOM结构。要么就自己参照我上面的用法可以肯定的是:document.getElementById("main").getElementsByTagName("div")[1]
功能是:获取id=main容器中的第二个div标签这样用不会有什么兼容性问题,也不会出错。如果你使用不行,要么就是这条语句执行的时候对象不存在,要么就是DOM不是那样的结构
alert(document.getElementById("main").getElementsByTagName("div").length);
function goto(index)
{
var maincon = document.getElementById("main");
var auxcon = document.getElementById("auxiliary");
for (var i = 0; i < maincon.childNodes.length; ++i)
if (index - i)
maincon.childNodes[i].style.display = "none";
else
switch(index){
case 1:
if (uname){
maincon.childNodes[i].style.display = "inline";//topic
auxcon.childNodes[1].style.display = "inline";//sidebar
maingoto(0);
}
else{
maincon.childNodes[i].style.display = "none";//topic
auxcon.childNodes[1].style.display = "none";//sidebar
index = 5;
}
break;
default:
maincon.childNodes[i].style.display = "inline";//topic
}
}把这段js黏贴上来,这段代码在ie里可以正确运行,但是在firefox里就不行了,childNodes都是div,我把childNodes改为getElementsByTagName("div")还是不行,在ie里也不行
要么就是DOM不是那样的结构这句话是什么意思?我是新手啦
<div>
<div></div>
//这里的换行在火狐貌似就会被看成其中的一个子节点。
<div></div>
</div>