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」値を作成する場合は、「class」プロパティを使用します。

于 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 に答える