JavaScript的令人沮丧的问题';s getElementById()
这是我被要求实施的画廊 我对它进行了细微的改动,使它更容易适应新站点的模板系统 每当我运行它时,这一行都会导致错误JavaScript的令人沮丧的问题';s getElementById(),javascript,image-gallery,getelementbyid,Javascript,Image Gallery,Getelementbyid,这是我被要求实施的画廊 我对它进行了细微的改动,使它更容易适应新站点的模板系统 每当我运行它时,这一行都会导致错误 ta=document.getElementById(thumbid); 表示ta为空。我知道thumbid变量的值确实作为无序列表的Id存在 至少半个小时以来,我一直试图弄清楚到底发生了什么,但似乎无法搞定 有人能告诉我我做错了什么吗?有点不清楚thumbid应该有什么值,但在我看来,您的问题是无序列表中的li项没有ids,它们有值 调用document.getElemen
ta=document.getElementById(thumbid);
表示ta
为空。我知道thumbid变量的值确实作为无序列表的Id存在
至少半个小时以来,我一直试图弄清楚到底发生了什么,但似乎无法搞定
有人能告诉我我做错了什么吗?有点不清楚
thumbid
应该有什么值,但在我看来,您的问题是无序列表中的li项没有id
s,它们有值
调用document.getElementById('thumbs')
可以很好地获取列表本身的ul
元素。有点不清楚thumbid
应该有什么值,但在我看来,您的问题是无序列表中的li项没有id
s,它们有value
s
调用document.getElementById('thumbs')
可以很好地获取列表本身的ul
元素。是的,代码看起来很好,从Firebug控制台运行相同的行可以正常工作,所以我想知道thumbs
元素在运行时是否确实存在?它是否在文档中。就绪样式的处理程序中?如果在元素出现在该页面之前调用它,那么ta
将为null,这将产生错误。是的,代码看起来很好,并且从Firebug控制台运行相同的行可以正常工作,因此我想知道thumbs
元素在运行时是否确实存在?它是否在文档中。就绪样式的处理程序中?如果在该页面上的元素存在之前调用它,则ta
将为null,这将创建该错误。在Safari 4中,第19行向我抛出了一个关于ta
的类型错误,该类型错误为null
这是由于您指出了ta
分配的位置
我喜欢将函数封装在闭包中的方式,但我认为可以将窗口.onload
更改为更多;事实上,你正在寻找的东西也是如此,类似于t=$('ul#thumbs li')
的东西应该可以做到这一点。我不知道在ta
前面抛出var
是否能解决任何问题,但值得一试。在Safari 4中,第19行向我抛出了一个关于ta
的类型错误,该错误为null
这是由于您指出了ta
分配的位置
我喜欢将函数封装在闭包中的方式,但我认为可以将窗口.onload
更改为更多;事实上,你正在寻找的东西也是如此,类似于t=$('ul#thumbs li')
的东西应该可以做到这一点。我不知道在ta
前面抛出var
是否能解决任何问题,但值得一试。看起来调用slideshow函数进行初始化太早了。这将在DOM树准备就绪之前调用:
var slideshow = function() {
...
} ();
请尝试在结尾处删除该()。似乎调用slideshow函数进行初始化太早了。这将在DOM树准备就绪之前调用:
var slideshow = function() {
...
} ();
尝试删除结尾处的()。好消息!jQuery是用普通Javascript编写的!您应该能够复制出他们通过ID获取元素的方法并使用它。好消息!jQuery是用普通Javascript编写的!您应该能够复制出他们通过ID获取元素的方法并使用它。我得到的错误是t=ta.getElementsByTagName('li')代码>我得到的错误是t=ta.getElementsByTagName('li')代码>我认为这是正确的。最简单的解决方案可能是将脚本引用移动到页面底部,并保持原样。无论如何,这应该也会提高初始页面加载时间。啊,我错过了自动运行的函数括号!我认为这是正确的。最简单的解决方案可能是将脚本引用移动到页面底部,并保持原样。无论如何,这应该也会提高初始页面加载时间。啊,我错过了自动运行的函数括号!但是,如果我使用jQuery选择器,原生JS方法会对返回的jQuery对象起作用吗?我不这么认为……如果我使用jQuery选择器,原生JS方法会对返回的jQuery对象起作用吗?我不这么认为。。。。