$('#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'));
}
});
上面的代码应该在每次按下clicker按钮时附加html,但它不起作用。我不确定我在这里做错了什么
答案 0 :(得分: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”值。如果您想为某些目的对元素进行分类,或者使用计数器或其他东西组成新的“id”值,请使用“class”属性。
答案 1 :(得分:1)
您的#在调查选择器的引号之外。
当你应该$(#'survey')
$('#survey')
此外,您将jQuery函数与常规javascript函数和元素混合在一起。
答案 2 :(得分: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'));
}
});
答案 3 :(得分: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);
}
});
答案 4 :(得分:0)
请尝试以下操作..正常工作
$('#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'));
}
});