繁体   English   中英

如何将html元素填充到另一个页面?

[英]How can I populate html elements into another page?

这是我在script.js中的jQuery函数。此函数用于从Flicker获取feed并填充结构。

我想将html结构填充到另一个名为“items.html”的html页面中

$function getImages(){
    $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?id=90528678@N03&lang=en-us&format=json&jsoncallback=?", displayImages);   

  function displayImages(data) {      

// Start putting together the HTML string
var htmlString = '';         

// Now start cycling through our array of Flickr photo details
    $.each(data.items, function(i,item){
    // Here's where we piece together the HTML
    htmlString += '<div class="item_wrapper" name="'+item.title+'">';
    htmlString += '<img class="item_picture" src="' + item.media.m + '" alt=""/>';
    htmlString += '<div class="item_data">';
    htmlString += '<div class="item_company">';
    htmlString += '<h3 class="fi se en">'+item.title+'</h3>';
    htmlString += '</div>';
    htmlString += '<div class="item_title">';
    htmlString += '<h3 class="fi">'+item.title+'</h3>';
    htmlString += '<h3 class="se">'+item.title+'</h3>';
    htmlString += '<h3 class="en">'+item.title+'</h3>';
    htmlString += '</div>';
    htmlString += '</div>';
    htmlString += '</div>';
});   
     // Pop our HTML in the DIV tag of items.html 
     // Here's the problem. 
    $('div').html(htmlString);
   }
}

那我该怎么办呢? 谢谢 !!!

您可以使用ajax加载函数来加载网页中的html内容。

$('div').load("file.html");

您可以使用以下命令将另一个html页面加载到元素中:

$('div').load("items.html");

您也不应该使用字符串连接来构建dom元素。

使用这样的东西:

var div = $('<div/>');

$.each(data.items, function(i, image) {

    var item = $('<div/>').addClass("item_wrapper").attr('name', image.title);

    $('<img/>').attr('src', image.media.m).appendTo(item);

    item.appendTo(div);

});

$('div').html(div);

等等...

这是一个有效的简化版本。

getImages();
function getImages(){
    $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?id=90528678@N03&lang=en-us&format=json&jsoncallback=?",
    function(data) {
        var htmlString = '';
        $.each(data.items, function(key, value){
                htmlString += '<div>'+value.title+'</div>';
                htmlString += '<img src="'+value.media.m+'">';
        });
        $('div').html(htmlString);
    });  
}

我实际上不知道为什么你的版本不起作用。

有可能getJSON的回调需要是匿名无名称函数,这就是displayImages函数无法正常工作的原因。 我无法让它发挥作用。

你的函数声明前面有一个$。 也许这导致了这个问题。

虽然html字符串插入工作,但像Josh说,DOM插入节点比html插入更好。 如果你只是在寻找一个快速而肮脏的解决方案html字符串插入可能没问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM