Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过JQuery追加到追加的元素?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何通过JQuery追加到追加的元素?

Javascript 如何通过JQuery追加到追加的元素?,javascript,jquery,html,Javascript,Jquery,Html,我的问题更多的是为什么会发生这种情况,而不是知道如何解决它 我想先将附加到div,然后将附加到 我有以下jQuery代码: $('.patches').empty(); for(i=0;i<patches.length;i++){ $('.patches').append($('<li>', { id:'li'+ patches[i].name, class: 'list-group-item' })); $('#li'+

我的问题更多的是为什么会发生这种情况,而不是知道如何解决它

我想先将
  • 附加到div,然后将
    附加到
  • 我有以下jQuery代码:

    $('.patches').empty();
    for(i=0;i<patches.length;i++){
        $('.patches').append($('<li>', {
            id:'li'+ patches[i].name,
            class: 'list-group-item'
        }));
        $('#li'+patches[i].name).append($('<a>',{
            href:patches[i].downloadUrl,
            text:patches[i].name,
            id:'a'+patches[i].name
        }));
        $('#a'+patches[i].name).append('Version : '+patches[i].version+' Author : '+patches[i].author);
    }
    
    $('.patches').empty();
    
    对于(i=0;i,您甚至在附加到DOM之前都在查询DOM

    直接附加到li

    for(i=0;i<patches.length;i++){
        $('.patches').append($('<li>', {
            id:'li'+ patches[i].name,
            class: 'list-group-item'
        }).append($('<a>',{
            href:patches[i].downloadUrl,
            text:patches[i].name,
            id:'a'+patches[i].name
        })));
        $('#a'+patches[i].name).append('Version : '+patches[i].version+' Author : '+patches[i].author);
    }
    

    for(i=0;i修改您的逻辑,首先将
    标记添加到
  • ,然后将
  • 标记添加到

    这些元素是动态创建的。因此,您需要调用类似这样的东西

    $(document).on('event', '.class-name', function(){
        // code
    });
    

    您可以创建一个link元素,并将其放在
    li
    标记中,然后将其附加到列表中

    请参见以下内容:

    $(文档).ready(函数(){
    设补丁=[
    {名称:“test1”,下载URL:“/url1”,版本:1,作者:“Alessandro”},
    {名称:“test2”,下载URL:“/url2”,版本:2,作者:“Alessandro”};
    $('.patches').empty();
    
    对于(i=0;这是可行的,但是如果我想在代码中进一步添加一些东西,为什么jquery选择器不起作用呢?您正在尝试在添加到DOM之前选择它。您能在回答中解释一下为什么会发生这种情况吗?当我进行调试时,当a的附加被称为DHMM时,li已经在DOM中了。只是一个question:不使用多个append(一个用于li,一个用于a,一个用于a内容),您不能只使用一个附加值来添加您想要的整个字符串,如
  • 。可能代码的可读性稍差一些,但性能也可能更高。可能这对于元素在DOM中的速度太快了。当您执行此类操作时,可以使用变量,因此您不需要使用选择器从DOM中进行选择你不是刚创建(或使用Suresh Atta的答案链接方法)。例如
    var el=$('
  • );$('.patches').append(el);el.append($('');
  • @PIIANTOM我想我可以,但如果我的设计中某些元素发生变化,修改任何内容都会变得困难。可读性对我来说很重要)@Kaddath使用变量似乎确实是一件好事,您确定它不起作用吗?我在JSFIDLE中创建了示例,它似乎对我起作用。请看
    $(document).on('event', '.class-name', function(){
        // code
    });