如何动态创建html元素?

时间:2014-09-12 01:29:10

标签: javascript jquery

我有一个数组

var elms = ["When?", "Why", "Where", ......]; 

我需要创建以下元素

<html .. whatever> 

<div id="q1"> When?  </div>
<input type="text" id="a1"></input>

<div id="q2"> Why?  </div>
<input type="text" id="a2"></input>

<div id="q3"> Where?  </div>
<input type="text" id="a3"></input>

........
</html>

我该怎么做?

PS:我的原始页面只有这个数组var elms而没有别的。我需要创建所有这些部门和输入。我试过jquery,但搞砸了单引号和双引号。 。所以我放弃了。

2 个答案:

答案 0 :(得分:4)

 var el;
 var idName;
 for(var i = 0; i < elms.length; i++){
   idName = "q" + i;
   el = document.getElementById(idName);
   el.innerHTML = elms[i];
 } 

使用索引0id="q0"开始您的div ID,以便轻松建立索引

您也可以使用jquery执行此操作:

 var el;
 var idName;
 for(var i = 0; i < elms.length; i++){
   idName = "#q" + i;
   $(idName).html(elms[i]); 
   // items in the html( .. ) can be done only in 
   // newer versions of jquery (I think) correct me if im wrong
 } 

如果它们尚不存在:

 var id;
 for(var i = 0; i < elms.length; i++){
  id = "q" + i;
  $("#containerDiv").append(
   "<div id="+id+">"+elms[i]+"</div><input type=\"text\" id=\"a2\"></input>"
   );
 }

答案 1 :(得分:2)

Working jsFiddle Demo

<强> HTML:

<div id="result"></div>
<input type="button" id="mybutt" value="Go" />

<强> jQuery的:

var nextbit, cnt=0;
var elms = ["When?", "Why", "Where", "How"];

$('#mybutt').click(function(){
    $(this).hide(); //Hide the button
    elms.forEach(function(item){
        cnt++;
        nextbit = '<div id="q"'+cnt+'>' +item+ '</div>';
        nextbit +='<input type="text" id="a"'+cnt+'></input>';
        $('#result').append(nextbit);
    });
});