1

私にとっては非常に奇妙な状態ですが、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>

最後に両方のスクリプトを配置すると、正常に動作します:/事前に感謝します:)

4

2 に答える 2

2

動作中のjsFiddleデモ

  • 要素が読み込まれるのを待ちます (DOM Ready を使用するか、 を使用するか、 HTML 要素の後に タグをwindow.onload追加します)。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>
于 2013-06-21T15:11:03.703 に答える
0

<script>要素が存在する前に、(上のブロックで) 関数を呼び出しています。

于 2013-06-21T14:57:46.773 に答える