2013-01-09 45 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