定位由脚本呈现的ID

时间:2013-03-26 19:44:57

标签: javascript getelementbyid

我使用了一个名为Tabifier的漂亮小脚本(http://www.barelyfitz.com/projects/tabber/

现在,简而言之,我在head标签中运行的这个脚本会创建一个<ul><li>包含<a> s。同样在head标记中,它会为这些<a>创建ID。当我检查加载的网站时,我可以清楚地看到ID标签存在。但是,我无法使用getElementById调用它们。我一直在使用

<script>
    document.getElementById('rightpanelnav1').style.padding='200px';    
</script>

作为我代码不同部分的示例脚本,但无济于事。我想知道我的代码中定义这些内容的位置或顺序是否导致它无法识别ID。你觉得怎么样?

编辑:我在下面收到了一个很好的答案,但我仍然无法获得正确的帮助#39;注册onclick事件......?它是一个,不应该是一个问题,对吧?当我点击它时,整个页面已加载几秒钟......

1 个答案:

答案 0 :(得分:4)

首先,为了访问DOM中的元素,元素必须是DOM的一部分(document)。因此,如果您将<script> getElementById放置在页面中加载元素之前的位置,则不会在DOM中看到该元素。

其次,您使用的这个库很可能会对页面加载进行修改,这意味着无论您将<script>置于何处,它都无法在运行之前看到这些元素。

因此,您应该让您的脚本等待,并执行此操作:

window.onload = function(){
 document.getElementById('rightpanelnav1').style.padding='200px';
};

或点击事件

window.onload = function(){
 document.getElementById('rightpanelnav1').onclick = function(){
  alert("clicked!");
 };
};