javascript中的anchors.length无法正常工作

时间:2013-06-21 14:55:08

标签: javascript html dom

对我来说这是非常奇怪的条件,但是当我在所有锚点标记之后放置脚本时,当我放置脚本时,anchors.length只给出锚点的总数。当我放置所有锚点之前它给出零...所以我做了这个但是现在函数lngt( )没有返回长度的锚,请帮助我,我只是卡住..

这是我的代码

<div class="box">
 <script>
 var na;
 na = lngt();
 for(i = 0 ; i < na ; i++)
{
    txt = document.anchors[i].innerHTML;
    lnk = document.anchors[i].name;
    document.write( "<a href='#"+lnk+"'>"+ txt + "</a></br>");
 }
 </script>
 </div>


<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
     <br/><br /><br/><br/><br/>
<a name="a">anchor 1</a><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br   
/><br/><br/><br/>
<a name="b">anchor 2</a><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br 
/><br/><br/><br/>
<a name="c">anchor 3</a><br/>

<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br
/><br/><br/><br/>
<a name="d">anchor 4</a><br/>


<script>
function lngt(){
var nc = document.anchors.length;
return nc;
}
</script>

当我把两个脚本放到最后它的工作正常:/ 在此先感谢:)

2 个答案:

答案 0 :(得分:2)

<强> Working jsFiddle Demo

  • 等待您的元素加载(使用DOM就绪,或window.onload,或在HTML元素后添加script标记。)
  • 使用innerHTML在页面中添加新元素。

<script>
window.onload = function () {
    var anchors = document.anchors;
    var toc = document.getElementById('toc');
    for (var i = 0, l = anchors.length; i < l; i++) {
        toc.innerHTML += '<div><a href="#' + anchors[i].name + '">' + anchors[i].innerHTML +'</a></div>';
    }
};
</script>

<div id="toc"></div>

<a name="a">anchor 1</a>
<a name="b">anchor 2</a>
<a name="c">anchor 3</a>
<a name="d">anchor 4</a>

答案 1 :(得分:0)

你在元素存在之前调用函数(在上面的<script>块中)。