Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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_Css - Fatal编程技术网

Javascript 使用jquery创建容器数组

Javascript 使用jquery创建容器数组,javascript,jquery,css,Javascript,Jquery,Css,模板: <Div id='Container'> <div id='name'></div> <div id='address'></div> </div> 试试这个: for(var i = 0; i < 4; i++){ var container = document.createElement('div'), name = document.createElement('div')

模板:

<Div id='Container'>

<div id='name'></div>
<div id='address'></div>

</div>
试试这个:

for(var i = 0; i < 4; i++){
    var container = document.createElement('div'),
        name = document.createElement('div'),
        address = document.createElement('div');
    container.id = 'Container' + i;
    name.className = 'name';
    address.className = 'address';
    container.appendChild(name);
    container.appendChild(address);
    document.body.appendChild(container);
}

//same thing using jQuery + people array for easy population
var people = [
    {name: "Tom", address: "sample address"},
    {name: "Richard", address: "address 2"},
    {name: "John", address: "address 3"}
];

for(var i = 0, len = people.length; i < len; i++){
    var container = $("<div id='Container" + i + "'><div class='name'>" + people[i].name + "</div><div class='address'>" + people[i].address + "</div></div>");
    $('body').append(container);
}
for(变量i=0;i<4;i++){
var container=document.createElement('div'),
name=document.createElement('div'),
地址=document.createElement('div');
container.id='container'+i;
name.className='name';
address.className='address';
container.appendChild(名称);
container.appendChild(地址);
文件.正文.附件(容器);
}
//使用jQuery+人员数组进行简单填充也是一样的
var people=[
{姓名:“汤姆”,地址:“样本地址”},
{姓名:“理查德”,地址:“地址2”},
{姓名:“约翰”,地址:“地址3”}
];
for(var i=0,len=people.length;i
上面的答案是纯javascript,当然可以使用,但是您询问了如何在jQuery中执行此操作,因此下面是一个jQuery版本,它使用$.each()方法迭代对象数组:

 var mydata = [{"name": "Tom", "address": "123 Happy Land"},{"name": "Dick", "address": "456 Main Street"},{"name": "Harry", "address": "789 End of the World"}]
  $.each(mydata, function() {
    var template = '<div class="container">';
    template += '<div class="name">'+this.name+'</div>';
    template += '<div class="address">'+this.address+'</div>';
    template += '</div>';
    $('body').append(template);
  });
var mydata=[{“姓名”:“汤姆”,“地址”:“123幸福之地”},{“姓名”:“迪克”,“地址”:“456大街”},{“姓名”:“哈里”,“地址”:“789世界末日”}]
$.each(mydata,function(){
var模板=“”;
模板+=''+此.name+'';
模板+=''+此.地址+'';
模板+='';
$('body')。追加(模板);
});
编辑: 如果您需要使用唯一id编号的容器,这也很容易:

var mydata = [{"name": "Tom", "address": "123 Happy Land"},{"name": "Dick", "address": "456 Main Street"},{"name": "Harry", "address": "789 End of the World"}]
  $.each(mydata, function(index) {
    index=index+1; //so you start at 1 not 0
    var template = '<div id="container'+index+'">';
    template += '<div class="name">'+this.name+'</div>';
    template += '<div class="address">'+this.address+'</div>';
    template += '</div>';
    $('body').append(template);
  });
var mydata=[{“姓名”:“汤姆”,“地址”:“123幸福之地”},{“姓名”:“迪克”,“地址”:“456大街”},{“姓名”:“哈里”,“地址”:“789世界末日”}]
$.each(我的数据、函数(索引){
index=index+1;//所以从1开始,而不是从0开始
var模板=“”;
模板+=''+此.name+'';
模板+=''+此.地址+'';
模板+='';
$('body')。追加(模板);
});

在有效的html中不能有多个具有相同ID的元素,因此我无法在html中硬编码div(可能使ID成为数组值),复制并直接修改属性?如果这有意义的话。@bobo2000:可能有,但效率相对较低。如果使用jQuery,这个解决方案会短得多/更容易阅读。@BrianGlaz:我刚下班,在手机上键入jQuery很痛苦。但是,如果您愿意,请随意编辑我的答案以包含jQuery选项。请这样做。Brian我想看看这在jQuery中会是什么样子,这将有助于我学习。
 var mydata = [{"name": "Tom", "address": "123 Happy Land"},{"name": "Dick", "address": "456 Main Street"},{"name": "Harry", "address": "789 End of the World"}]
  $.each(mydata, function() {
    var template = '<div class="container">';
    template += '<div class="name">'+this.name+'</div>';
    template += '<div class="address">'+this.address+'</div>';
    template += '</div>';
    $('body').append(template);
  });
var mydata = [{"name": "Tom", "address": "123 Happy Land"},{"name": "Dick", "address": "456 Main Street"},{"name": "Harry", "address": "789 End of the World"}]
  $.each(mydata, function(index) {
    index=index+1; //so you start at 1 not 0
    var template = '<div id="container'+index+'">';
    template += '<div class="name">'+this.name+'</div>';
    template += '<div class="address">'+this.address+'</div>';
    template += '</div>';
    $('body').append(template);
  });