对我来说这是非常奇怪的条件,但是当我在所有锚点标记之后放置脚本时,当我放置脚本时,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>
当我把两个脚本放到最后它的工作正常:/ 在此先感谢:)
答案 0 :(得分:2)
<强> Working jsFiddle Demo 强>
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>
块中)。