Javascript - 创建一系列<a> tags within a div</a>

时间:2013-08-22 17:28:12

标签: javascript jquery html

我正在尝试创建一系列在wunderNav div中递增1的锚标记。

当我使用console.log(counter)运行此循环时;它给了我一个很好的清单1 - XX。当我尝试添加锚标签时,它只会附加系列的最后一个。

for(var counter = 1; counter <= thisGM.grids.length; counter++){
    document.getElementById('wunderNav').innerHTML = '<a id="wunderNumber'+ counter +'" href="javascript:thisGM.goToGridPage('+ counter + ');">' + counter + '</a>';
}

谢谢大家,javascript相当新,我把头撞在了墙上!

这就是我需要的:

 for(var counter = 1; counter <= thisGM.grids.length; counter++){
    document.getElementById('wunderNav').innerHTML += '<a id="wunderNumber'+ counter +'" href="javascript:thisGM.goToGridPage('+ counter + ');">' + counter + '</a>';}

5 个答案:

答案 0 :(得分:6)

分配给.innerHTML会逐字取代该节点的内容。您需要APPEND,例如

var w = document.getElementById('wunderNav');
for(...) {
   w.innerHTML += '<a ....></a>';
               ^^-- string concatenation
}

同样,请注意您的代码段中的HTML无效。您以<a>开头,但以</span>

结尾

答案 1 :(得分:1)

你正在擦除循环的每次迭代wunderNav的内容。使用+=而非=附加到div的当前innerHTML

document.getElementById('wunderNav').innerHTML += '<a id="wunderNumber'+ counter 
    +'" href="javascript:thisGM.goToGridPage('+ counter + ');">' 
    + counter + '</span>';}

答案 2 :(得分:1)

您需要在每个循环周期中添加它:

var elem = document.getElementById('wunderNav');
elem.innerHTML = elem.innerHTML + '<a id="wunderNumber'+ counter +'" href="javascript:thisGM.goToGridPage('+ counter + ');">' + counter + '</a>';}

答案 3 :(得分:1)

for(var counter = 1; counter <= thisGM.grids.length; counter++){
  document.getElementById('wunderNav').innerHTML += '<a id="wunderNumber'+ counter +'" href="javascript:thisGM.goToGridPage('+ counter + ');">' + counter + '</a>';
}

答案 4 :(得分:0)

试试这个:

for(var counter = 1; counter <= thisGM.grids.length; counter++){

    document.... += '<a id="wunder....">' + counter + '</span>';

}

使用+=代替=。这是因为您需要将每个锚标记连接到前一个锚标记。

祝你好运