2011-10-24 86 views
3

我正在使用JQuery的$.getJSON函数下载一些图像的URL,我试图在div内输出它们。我试图让输出看起来像这样:JQuery附加'[object,Object]'而不是图片

<a href="the image url (shot.short_url)"><img src="the direct image url (shot.image_teaser_url)" /></a> 

但是,输出这个:

<div id="body-wrapper"> 
    <a href="http://drbl.in/300896">[object Object]</a> 
    <a href="http://drbl.in/298080">[object Object]</a> 
    <a href="http://drbl.in/290395">[object Object]</a> 
    <a href="http://drbl.in/290324">[object Object]</a> 
    <a href="http://drbl.in/268595">[object Object]</a> 
    <a href="http://drbl.in/265197">[object Object]</a> 
    <a href="http://drbl.in/256368">[object Object]</a> 
    <a href="http://drbl.in/252519">[object Object]</a> 
    <a href="http://drbl.in/242235">[object Object]</a> 
    <a href="http://drbl.in/241676">[object Object]</a> 
</div> 

请你能告诉我在哪里,我错了的情况下进行输出图片?

这是我的代码:

function work() { 
      $('#body-wrapper').empty(); 
      $.getJSON("http://dribbble.com/jakekrehel/shots.json?callback=?", function(data){ 
       $.each(data.shots, function(i,shot){ 
        var image = $('<img/>').attr('src', shot.image_teaser_url); 
        var title = '<a href=\"' + shot.short_url + '\">'; 
        var string = title; 
        string = string + image; 
        string = string + '</a>'; 
        $('#body-wrapper').append(string); 
       }); 
       }); 
     } 
+2

这是一个不是字符串的对象。将其解引用到url值。 – Joe

+0

谢谢,我正在使用'var image ='';'现在。 –

回答

0

.each()回调中试试这个

// create image 
var image = $('<img>').attr('src', shot.image_teaser_url); 

// create anchor and append image 
var anchor = $('<a>').attr('href', shot.short_url).append(image); 

// append anchor to container 
$('#body-wrapper').append(anchor); 
+0

我做了'var image ='';'而不是,它完美地工作。 –

+0

@XcodeDev不,它不。如果'image_teaser_url'或'short_url'字符串包含任何HTML字符,则可能会弄乱文档或更糟,导致XSS漏洞。改用适当的DOM方法。 – Phil

2

图像是一个jQuery对象,而不是一个字符串 - 因此它附加到一个字符串会产生[对象的对象]

理想情况下,将所有内容都改为对象 - 例如

$('#body-wrapper').append(
    $("<a/>",{"href": shot.short_url}).append(
    $("<img/>",{"src": shot.image_teaser_url})); 

或欺骗和为此 字符串=串+ image.html();

要么应该工作

注:我打那些没有语法检查和有支架的很多,做了我最好的寿!

相关问题