2013-12-18 42 views
0

我試圖創建一個函數,它帶有兩個參數,一個數字和一個字符串。我需要能夠用一個數字n調用它,以便該列表的第n個元素將被修改爲從函數中讀取字符串。
我是一個BEGINNER,所以我正在爲此付出努力 - 我知道我目前在這個功能中所擁有的並不是我所需要的,但我希望將它作爲我可以適應的起點。我想我可能需要使用循環來做到這一點......除此之外,我沒有太多的想法。任何指導?創建一個函數來編輯具有可變數字和給定字符串的列表

<html> 

<script> 

function doit() { 
document.getElementById('element1').innerHTML='Element one'; 
document.getElementById('element2').innerHTML='Element two'; 
document.getElementById('element3').innerHTML='Element three'; 
} 
</script> 
<body> 
<p>Value: <input type="text" id="theInput" value="" size=10> 
<input type="button" id="theButton" value="click me!" onclick="doit()"></p> 
<ul id="theList"> 
<li id="element1">Element 1 
<li id="element2">Element 2 
<li id="element3">Element 3 
</ul> 
<div id="theDiv"></div> 
</body> 
</html> 
+0

你li元素沒有關閉標籤。 – Khamidulla

回答

1

您可以使用jQuery來獲取ul標記的children(li)元素。它會返回所有孩子的數組。請注意,該數組是零索引的。在傳入索引時,您需要記住這一點,或者將索引中的代碼更新爲-1。

function updateListItem(index, text) { 
    var myListItem = $("#theList").children()[index]; // DOM reference to the list item 

    $(myListItem).text(text); // update the text 
} 

沒有jQuery的,你可以做這樣的事情:

function updateListItem(index, text) { 
    var myListItem = document.getElementById("theList").children[index] // An array of the list items 
    myListItem.innerHTML = text; // update the text 
} 
1

這裏有一些想法,你應該做的:

  1. 對於功能doit,你需要添加兩個參數代表字符串和數字。
  2. 接下來,創建一個變量,它是「元素」的連接(字符串加法),並且您的數字參數
  3. 最後,使用上述方法將document.getElementById(<your string here>)設置爲任何字符串。

這裏是一個快速實現的例子:

function doit(str, num){ 
    var elementID = "element" + num; 
    document.getElementById(elementID).innerHTML = str; 
} 
相關問題