2013-01-09 331 views
0
$('#clicker').click(function() { 
collegeArray = ["Harvard", "Yale", "Princeton"]; 
alert(collegeArray.length); 
for (var i = 0; i < collegeArray.length; i++) { 
    var divIdName = 'college' + i + 'Div'; //manuplating name of each div generated dynamically 
    var newdiv = document.createElement('div') 
    .setAttribute('id', divIdName) //setting the name of each div created dynamically 
    .html('<p>' + collegeArray.toString() + '</p>') 
    appendTo($(#'survey')); 
} 
}); 

上面的代码应该在每次点击按钮被按下时附加html,但它不起作用。我不知道我做错了这里.html不按预期工作

http://jsfiddle.net/HvJnH/19/

回答

4

你试图使用原始DOM元素的jQuery方法是什么。

var newdiv = $('<div/>') 
    .prop('id', divIdName) //setting the name of each div created dynamically 
    .html('<p>' + collegeArray.toString() + '</p>') 
    .appendTo($(#'survey')); 

或者:

var newdiv = $('<div/>', { 
    id: divIdName, 
    html: '<p>' + collegeArray.toString() + '</p>' 
}).appendTo('#survey'); 

编辑 —也作为Shmiddty在评论中指出,你绝对不应该再使用 “身份证” 的价值观上的多个元素。如果您想为某种目的对元素进行分类,或者使用计数器或其他东西组成新的“id”值,请使用“class”属性。

+1

你也应该提到如何重复相同ID不好。 :) – Shmiddty

+0

@Shmiddty啊我没注意到;你完全正确。 – Pointy

1

您的#在您的调查选择器上不在您的报价范围之内。

你有$(#'survey')的时候,你应该有$('#survey')

此外,你混的jQuery功能与常规的JavaScript函数和元素。

1

您有几个问题,包括在普通的JS元素上使用jQuery方法,并将#置于引号之外。试试这个:

$('#clicker').click(function() { 
    collegeArray = ["Harvard", "Yale", "Princeton"]; 
    for (var i = 0; i < collegeArray.length; i++) { 
     var divIdName = 'college' + i + 'Div'; //manuplating name of each div generated dynamically 
     var newdiv = $('<div></div>', { 
      id: divIdName 
     }) 
      .html('<p>' + collegeArray.toString() + '</p>') 
      .appendTo($('#survey')); 
    } 
}); 

Example fiddle

0

尝试following..Its工作

$('#clicker').click(function() { 
    collegeArray = ["Harvard", "Yale", "Princeton"]; 

    for (var i = 0; i < collegeArray.length; i++) { 
     var divIdName = 'college' + i + 'Div'; 
      $('<div></div>').attr('id', divIdName).html('<p>' + collegeArray.toString() + '</p>').appendTo($('#survey')); 
    } 
}); 
1

一些修改和它可能工作:

$('#clicker').click(function() { 
    var collegeArray = ["Harvard", "Yale", "Princeton"]; 
    for (var i = 0; i < collegeArray.length; i++) { 
     var divIdName = 'college' + i + 'Div'; 
     var newDiv = $("<div/>") 
      .attr("id", divIdName) 
      .html('<p>' + collegeArray[i] + '</p>'); 

     $("#survey").append(newDiv); 
    } 
}); 
+0

+1注意到OP可能希望每个“学院”在一个单独的div中。 – Shmiddty