使用jQuery添加div块元素

时间:2014-04-02 12:29:24

标签: javascript jquery html css

我有一个像这样的JSON对象数组:

var array = [
{title : "TEST1", img : "http://www.myTest1.com/test1.jpg"},
{title : "TEST2", img : "http://www.myTest2.com/test2.jpg"},
{title : "TEST3", img : "http://www.myTest3.com/test3.jpg"}
]

我想创建以下bloc元素(使用前面的数组)并将此bloc添加到我的网页中的现有<div id="content"></div>中:

<div id="line1">

        <div class="item">
            <h2 id="item_text">
                <span>TEST1</span>
            </h2>
            <div class="img-div">
                <img id="item_img" src="http://www.myTest1.com/test1.jpg" alt="" height="333px" width="500px" />
            </div>
        </div>

        <div class="item">
            <h2 id="item_text">
               <span>TEST2</span>
            </h2>
            <div class="img-div">
                 <img id="item_img" src="http://www.myTest2.com/test2.jpg" alt="" height="333px" width="500px" />
            </div>
        </div>

        <div class="item">
            <h2 id="item_text">
               <span>TEST3</span>
            </h2>
            <div class="img-div">
                <img id="item_img" src="http://www.myTest3.com/test3.jpg" alt="" height="333px" width="500px" />
            </div>
        </div>

</div>

我如何在Javascript / JQuery

中执行此操作

6 个答案:

答案 0 :(得分:1)

试试 FIDDLE

创建模型,用于存储要填充的HTML内容。迭代数组并追加它。

 var line = $("#line1");
 for (a in array) {
     appendModel(a);
 }

 function appendModel(num) {
     var model = '<div class="item"><h2 id="item_text"><span>' + array[num].title + 
         '</span></h2><div class="img-div"><img id="item_img" src="' + array[num].img + '
     " alt="" height="333px" width="500px" /></div></div>';
     line.append(model);
 }

答案 1 :(得分:0)

这是你在寻找什么?

var myNewDiv = $("<div></div>");

//append content to myNewD

myNewDiv.appendTo($("#content"))

答案 2 :(得分:0)

document.getElementById("line1").innerHTML += "<div id='content'>";

for(var i = 0; i < 3; i++) {
document.getElementById("line1").innerHTML += "<h1>" + array[i].title + "</h1>"
document.getElementById("line1").innerHTML += "<img src='" + array[i].img + "'>";
}

document.getElementById("line1").innerHTML += "</div>";

Fiddle。希望有所帮助。

答案 3 :(得分:0)

有一个;在你的数组中它应该是a,

使用此:

var array = [
{title : "TEST1", img : "http://www.myTest1.com/test1.jpg"},
{title : "TEST2", img : "http://www.myTest2.com/test2.jpg"},
{title : "TEST3", img : "http://www.myTest3.com/test3.jpg"}
]

然后你可以这样做:

var arrayLength = array.length;
var insertHTML = "";
for (var i = 0; i < arrayLength; i++) {
  insertHTML += array[i].title + array[i].img;
}

document.getElementById("youdivID").innerHTML= insertHTML;

答案 4 :(得分:0)

您可以使用jQuery.each()创建html和jQuery.append()函数,将其附加到目标div

var array = [
    {title : "TEST1", img : "http://www.myTest1.com/test1.jpg"},
    {title : "TEST2", img : "http://www.myTest2.com/test2.jpg"},
    {title : "TEST3", img : "http://www.myTest3.com/test3.jpg"}
];

/*
 * put your target div selector here
 * I have simply played with this page elements
 */
var newHtml = '';

    $(array).each(function(index,item){
    newHtml += '<div class="item"><h2 id="'+ item.title +'"><span>'+ item.title +'</span></h2><div class="img-div"><img id="'+ item.img +'" src="'+ item.img +'" alt="" height="333px" width="500px" /></div></div>';
});

$target = $('#question-header').append(newHtml);

答案 5 :(得分:0)

尝试:

var array = [
        {title : "TEST1", img : "http://www.myTest1.com/test1.jpg"},
        {title : "TEST2", img : "http://www.myTest2.com/test2.jpg"},
        {title : "TEST3", img : "http://www.myTest3.com/test3.jpg"}
        ]
        function gen(myArray){
            var html = '<div id="line1">'
            for (var i = 0, i < myArray.length; i++){
                html += '<div class="item"><h2 id="item_text"><span>'+myArray[i].title+'</span></h2><div class="img-div"><img id="item_img" src="'+myArray[i].img+'" alt="" height="333px" width="500px" /></div></div>';
            }
            html += '</div>';
            return html;
        }

        var HTML = gen(array);
        $('#content').html(HTML);