2013-06-21 3 views
1

Его очень странное условие для меня, но anchors.length дает только общее количество якорей, когда я устанавливаю скрипт после всех тегов привязок и когда я размещаю перед всеми привязками, он дает нуль .... так что я сделал это, но теперь функция lngt() не возвращает длину анкеров, пожалуйста, помогите мне, я просто застрял ..anchors.length в javascript не работает должным образом

вот мой код

<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

Working jsFiddle Demo

  • Подождите ваши элементы для загрузки (с помощью DOM готов, или window.onload, или добавить script тега после вашего HTML-элементов).
  • Используйте 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> 
+0

спасибо, но PLZ помогите мне, как его работа ?? –

+0

@MaqboolUrRahimKhan: 'window.onload' ждет, пока DOM не будет готова перед запуском. –

+0

oh получил это @RocketHazmat спасибо :) –

0

Вы вызываете функцию (в верхнем блоке <script>) до того, как будут существовать элементы.

+0

На самом деле функция тоже не существует. – Ryan

+0

Функция существует: http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html –

+1

@JoeFrambach: функции не вставлены в блоки '