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对象起作用吗?我不这么认为。。。。