2012-10-26 142 views
3

由於某種原因,下面的函數中的p元素不會創建(和/或附加到div)。如果我將它作爲div附加到'#listOfListObjects',它可以工作,但我希望它在div內。動態創建的p元素不附加到動態創建的div

我在做什麼錯?

$('#addListObjectSubmit').click(function (e) { 

     var listObjectName = $('#m_newListObject').val(); 

     if((listObjectName == null) || (listObjectName == '')) { 
      return false; 
     } 
     else { 
      var listDiv = 'listDiv' + i; 

      $('<div>', { 
       class: 'listObjectShow', 
       id: listDiv 
      }).appendTo('#listOfListObjects'); 

      $('<p>', { 
       class: 'listObjectShow', 
       text: listObjectName, 
       id: 'listObject' + i 
      }).appendTo(listDiv); 
     } 

     i += 1; 

     e.preventdefault(); 
    }); 
+1

對於我沒有測試的結果,我想你錯過了選擇器中的'#',所以應該是'.appendTo(「#」+ listDiv);'imo。 –

回答

4

更改此

var listDiv = 'listDiv' + i;

var listDiv = '#listDiv' + i;

爲了

$('<div>', { 
    class: 'listObjectShow', 
    id: listDiv 
}).appendTo('#listOfListObjects'); 

$('<p>', { 
    class: 'listObjectShow', 
    text: listObjectName, 
    id: 'listObject' + i 
}).appendTo('#' + listDiv); 
+0

第一個選項沒有用,但是「appendTo('#'+ listDiv)」沒有。謝謝! – holyredbeard

+0

很好聽:-) – 2619

1

text不是<p>元素的屬性。

你應該改變:

$('<p>', { 
    class: 'listObjectShow', 
    text: listObjectName, 
    id: 'listObject' + i 
}).appendTo(listDiv); 

$('<p>', { 
    class: 'listObjectShow', 
    id: 'listObject' + i 
}).text(listObjectName).appendTo(listDiv); 
0

我最喜歡這樣的事情的方式是這樣的

var $div = $('<div>', { 
       class : 'listObjectShow', 
       id : listDiv 
      }).appendTo('#listOfListObjects'); 

$('<p>', { 
    class : 'listObjectShow', 
    id : 'listObject' + i 
}).text(listObjectName).appendTo($div); 

與選擇,IDS等沒有問題...只是一個簡單的參考新的div使用