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,但它不起作用。我不确定我在这里做错了什么

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

4

5 回答 5

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”值,请使用“类”属性。

于 2013-01-09T17:13:08.860 回答
1

您的 # 在您的调查选择器上的引号之外。

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

此外,您将 jQuery 函数与常规 javascript 函数和元素混合在一起。

于 2013-01-09T17:13:21.630 回答
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'));
    }
});

示例小提琴

于 2013-01-09T17:15:23.457 回答
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);
    }
});
于 2013-01-09T17:21:40.920 回答
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'));
     }
 });
于 2013-01-09T17:20:28.020 回答