.html没有按预期工作

时间:2013-01-09 17:11:01

标签: javascript jquery

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

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

5 个答案:

答案 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'));
    }
});

Example fiddle

答案 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'));
     }
 });
相关问题