我有一個數組定義並將其附加到字符串字段以動態編寫HTML TR。我已經命名了一系列與數組中字符串值相同名稱的JPEG,以便我可以動態地打印字符串名稱及其關聯圖像。我的問題是,我想添加一個onclick事件到圖像並傳遞一個與表格行打印的名稱相同的javascript函數。圖像和字符串正確迭代,但傳遞給每個錶行的JavaScript函數的值默認爲最後一個數組項?我嘗試了多種場景,但不明白爲什麼同樣的storyWords [index]在用來選擇正確的JPEG文件並打印出正確的名稱時不起作用。數組的索引默認爲最後一次迭代
<script type="text/javascript">
var storyWords = "";
var index;
var strWord ="";
function doStuff(word){
alert(word);
};
$(document).ready(function(){
var storyId = localStorage.getItem("StoryId");
var strHTML = "<table>";
if (storyId == "1"){
storyWords = ["Ant", "Bananas", "Bottle", "Car", "Castle"];
}
else if (storyId == "2"){
storyWords = ["Dragons", "Football", "Hollow", "Hospital", "Island"];
}
else if (storyId == "3"){
storyWords = ["Log", "Party", "Mountain", "Poles", "Princess"];
}
else{
storyWords = ["Trophy"];
}
for (index = 0; index < storyWords.length; index++){
strWord = storyWords[index];
strHTML += "<tr><td><img src=img/Words/" + storyWords[index] + ".jpg onclick=doStuff("+ storyWords[index] +");> " + storyWords[index] + "</td></tr>";
}
$('#wordText').html(strHTML + "</table>");
});
</script>
感謝您的幫助!
我不知道你想達到什麼(小提琴會很好),但我現在看到的是,你從來沒有設置'localStorage'「StoryId」變量,因此'if ... else if ... else'將總是以'else'(Trophy)結尾。 – lesssugar 2014-09-02 22:10:44
函數正在傳遞數組的最後一個元素,即使每個行都在索引更改時打印正確的元素名稱和指定的jpeg。 – 2014-09-02 23:31:15
我在Google Chrome開發人員工具中進行測試時手動設置了storyid。 – 2014-09-02 23:33:24