Javascript循环迭代问题
我想运行一个for循环,它将生成一个包含单个链接的新div(类为“container”)。例如,第一个div将显示'link6.php',第二个div将显示'link5.php'等。然而,目前似乎每个div中的循环都在运行完整的循环(我附上了一张显示这一点的图片)Javascript循环迭代问题,javascript,php,jquery,loops,for-loop,Javascript,Php,Jquery,Loops,For Loop,我想运行一个for循环,它将生成一个包含单个链接的新div(类为“container”)。例如,第一个div将显示'link6.php',第二个div将显示'link5.php'等。然而,目前似乎每个div中的循环都在运行完整的循环(我附上了一张显示这一点的图片) for(变量i=6;i>0;i--){ $(“#一切”)。追加(“”); var link=“link”+i+”.php“+””; $('.container')。追加(链接); } 事先非常感谢。我是新手,非常感谢你的帮助;)
for(变量i=6;i>0;i--){
$(“#一切”)。追加(“”);
var link=“link”+i+”.php“+”
”;
$('.container')。追加(链接);
}
事先非常感谢。我是新手,非常感谢你的帮助;) 问题是,在附加div之后,选择所有
.container
元素并将文本附加到每个元素。似乎没有理由不能做到以下几点
for (var i = 6; i > 0; i--) {
$('#everything').append('<div class="container">link'+i+'.php<br /></div>');
}
for(变量i=6;i>0;i--){
$(“#一切”).append('link'+i+'.php
);
}
给每个div指定“container”类,然后在所有.container上运行append()
您需要给div一个唯一的ID,或者由对象直接引用它。
例如:
for (var i = 6; i > 0; i--) {
$('#everything').append('<div class="container'+i+'"></div>');
var link = "link" + i + ".php" + "<br />";
$('.container'+i).append(link);
}
for(变量i=6;i>0;i--){
$(“#一切”)。追加(“”);
var link=“link”+i+”.php“+”
”;
$('.container'+i).append(link);
}
问题在于每次执行$('.container').append(link)
,$('.container')
收集所有现有div,包括在以前的迭代中添加的div,并将链接附加到每个div
与其重新收集它们,不如重用对容器的现有引用。您可以链接append
和appendTo
for(变量i=6;i>0;i--){
$(“”)//创建容器
.append(“link”+i+“.php”)//用link追加容器
.appendTo(“#一切”);//将容器附加到一切
}
#一切{
填充:10px;
边框:1px纯蓝色;
}
.集装箱{
填充:10px;
边框:1px纯红;
}
这是我对您的代码的推荐。我建议您首先缓存东西,并了解jQuery的DOM选择是如何工作的
var everythingCached = $('#everything');
var container = $('<div class="container"></div>');
for (var i = 6; i >0; i--) {
var cached = everythingCached.append(container);
var link = "link" + i + ".php" + "<br />";
cached.append(link);
}
var everythingCached=$(“#一切”);
变量容器=$('');
对于(变量i=6;i>0;i--){
var cached=everythingCached.append(容器);
var link=“link”+i+”.php“+”
”;
cached.append(link);
}
当您执行$(“.container”).append()
时,它将class=“container”
附加到每个DIV,而不仅仅是您刚才在这个循环中附加的\
解决此问题的简单方法是将链接
包含在附加到的内容中
for (var i = 6; i > 0; i--) {
var link = "link" + i + ".php" + "<br />";
$('#everything').append('<div class="container">' + link + '</div>');
}
for(变量i=6;i>0;i--){
var link=“link”+i+”.php“+”
”;
$(“#一切”).append(“”+link+“”);
}
也可以将容器创建为对象:
$('#everything').append($('<div>', {
"class": "container",
html: "link" + i + ".php<br/>"
});
$('#一切')。追加($(''){
“类”:“容器”,
html:“链接“+i+”.php
”
});
或者,您可以将容器分配给变量并附加到该变量:
var container = $('<div class="container">').appendTo("#everything");
var link = "link" + i + ".php" + "<br />";
container.append(link);
var container=$('').appendTo(“#一切”);
var link=“link”+i+”.php“+”
”;
container.append(link);
您应该仔细阅读jQuery文档,了解它们关于DOM选择的规范。不过,我可以帮您。对不起,@EnglishMaster我是新手!非常感谢您的帮助!老实说,这很好,但我不推荐。在这种情况下使用类没有任何意义。非常感谢!我用了这个,效果非常好。比我得到的要简单得多…:)
var container = $('<div class="container">').appendTo("#everything");
var link = "link" + i + ".php" + "<br />";
container.append(link);