【问题标题】:jquery .append() not workingjquery .append() 不工作
【发布时间】:2012-08-16 18:52:07
【问题描述】:

我正在尝试将一些文本附加到动态创建的 div 中。我在 .each() 函数中执行此操作。文本未附加的问题。有人可以帮我解决这个问题。这就是我想做的事情

         $('<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>'));
                });

请帮助我,让我知道我哪里出了问题

【问题讨论】:

    标签: jquery


    【解决方案1】:

    这个元素是什么?

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

    你的意思是:

    $('#window'+i)
    

    ?

    【讨论】:

    • 您是要创建一个元素还是选择它?
    • @fliim:嗯!是的,我的意思是一样的。这是一个非常愚蠢的错误。感谢您指出。
    【解决方案2】:

    您的选择器错误。应该是

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

    或者既然你有一个 id 就使用 ID 选择器

    $('#window' + i)
    

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

    【讨论】:

    • 他没有选择div,他正在创建它
    • 哦!是的。非常感谢您的帮助
    • @jackwanders 实际上我的代码与他的创作部分无关......这是他在每个循环中的选择
    • 是的,我评论后看到了。
    【解决方案3】:

    看来你的问题出在这个位上:

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

    我猜 'COUNTRY' 是您要查找的元素的 id?如果是这样,请尝试:

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

    同样,这个选择器:

    $(this).find('TO')
    

    可能需要改成

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

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

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

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

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

    如果您尝试选择现有元素,请尝试:

    $('#window'+i)
    

    【讨论】:

    • 还有$(this).find('TO').each
    • @jackwanders:不,我不是在寻找 id COUNTRY,它是我正在寻找的一个 xml 元素。基本上我正在解析 xml 文档并以 HTML 格式显示内容。我做错的只是选择器。
    猜你喜欢
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    相关资源
    最近更新 更多