2017-12-13 23 views
1

動的リストを作成しようとしていますが、ページが読み込まれたときにロードしようとしています。私はスクリプトを書いてそれをテストしましたが、何らかの理由で動作していないようです。ページロード時に動的に作成されたリストをロードする

CODE

<script> 
    var fruits = ["apple","pear","banana","orange"]; 

    function showList(){ 
    list = document.createElement("LI"); 
    list.setAttribute("href","#"); 
    for(i=0;i<fruits.length;i++){ 
     list = fruits[i]; 
    } 


    } 

    </script> 

    <ul id="list-container" onload="showList();"> 


    </ul> 

あなたはwindow.onloadイベントと連携し、以下のとおりループに内部要素の作成コードを移動する必要がフィドル https://jsfiddle.net/88vo6vb8/

+0

。 – bhansa

答えて

0

Here is the fiddle と以下のコードスニペット。 @ Shalitha Surangaの答えに基づいて、私は少し追加しました。あなたがDOMにリスト項目を追加し、代わりに `window.onload`を使用して、関数を呼び出している

<script> 
 
var fruits = ["apple","pear","banana","orange"]; 
 

 
window.onload =() => { 
 
    for(let i=0;i<fruits.length;i++){ 
 
    \t liA=document.createElement("a"); 
 
    liA.setAttribute("href","#"); 
 
    list = document.createElement("LI"); 
 
    list.innerHTML = fruits[i]; 
 
    liA.appendChild(list); 
 
    document.getElementById('list-container').appendChild(liA); 
 
    } 
 

 

 
} 
 

 
</script> 
 

 
<ul id="list-container"> 
 
    
 
    
 
</ul>

+0

大変ありがとうございます。 – htmlnoob

2

。また、それぞれli要素のテキストを設定するのにelement.innerHTMLを使用してください。

<script> 
 
var fruits = ["apple","pear","banana","orange"]; 
 

 
window.onload =() => { 
 
    for(let i=0;i<fruits.length;i++){ 
 
    list = document.createElement("LI"); 
 
    list.setAttribute("href","#"); 
 
    list.innerHTML = fruits[i]; 
 
    document.getElementById('list-container').appendChild(list); 
 
    } 
 

 

 
} 
 

 
</script> 
 

 
<ul id="list-container"> 
 
    
 
    
 
</ul>

+0

'innerText'は' innerHTML'よりも意味があります。 –

+0

しかし、この方法では、リストをハイパーリンクにしたいのですが、.setAttributeを使用したいのです。 – htmlnoob

+1

ハイパーリンクを作成するために 'li'に直接' href'属性を追加することはできません。子要素 'a'を' href'で追加する必要があります。 –

関連する問題