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
});