2012-08-16 84 views
0

我想追加一些文本到动态创建的div。我在.each()函数中这样做。文字未被追加的问题。有人可以帮助我这个。这就是我要做的jquery .append()不工作

  $('<div class="window" id="window'+i+'" />') 
       .append($('<p id="country'+i+'">').text($(this).find('COUNTRY').text())) 
       .appendTo('body'); 
       var j = 0; 
       $(this).find('TO').each(function(){ 
        var $name = $(this).text(); 
        alert("@@@@@@@@@@@@@@@@@@@@::::"+$name); 
        j +=1; 
        $('<#id="window'+i+'" />').append($('<p id="to'+j+'">Test</p>')); 
       }); 

请通过让我知道我与这个

回答

4

这是什么元素走错了帮助我吗?

$('<#id="window'+i+'" />') 

你的意思是:

$('#window'+i) 

+0

它的div元素。 – 2012-08-16 18:54:48

+0

你想创建一个元素还是选择它? – MrOBrian 2012-08-16 19:00:22

+0

@fliim:呃!是的,我的意思是一样的。这是一个非常愚蠢的错误。感谢您指出。 – 2012-08-16 19:00:31

2

您的选择是错误的。它应该是

$('div[id="window'+i+'"]').append($('<p id="to'+j+'">Test</p>')); 

或因为你有一个ID只使用ID选择

$('#window' + i) 

http://api.jquery.com/category/selectors/

+0

他没有选择'div',他正在创建它 – jackwanders 2012-08-16 18:56:52

+0

哦!是。非常感谢您的帮助 – 2012-08-16 18:59:04

+0

@jackwanders实际上我的代码与他的创作部分无关。它在每个循环中选择内容 – 2012-08-16 19:00:29

1

看来,你的问题是与该位:

$(this).find('COUNTRY').text() 

我猜'国家'是你正在寻找的元素的id?如果是这样,请尝试:

$(this).find('#COUNTRY').text() 

同样,这个选择:

$(this).find('TO') 

可能需要改变

$(this).find('#TO') 

这取决于是否'COUNTRY''TO'的标识,类等最后,正如其他人所指出的那样:

$('<#id="window'+i+'" />') 

是无效的选择器。如果你想创建一个元素,你想:

$('<div id="window'+i+'" />') 

,如果你想选择一个现有的元素,尝试:

$('#window'+i) 
+0

也''(this).find('TO').'每个' – MrOBrian 2012-08-16 18:58:57

+0

@jackwanders:没有我不搜索ID国家,这是一个XML元素,我正在寻找。基本上我解析XML文档并在HTML中显示内容。我所犯的一切都与选择器有关。 – 2012-08-16 19:06:41