Jquery:Pulling flickr set+;获取item.title
我正试图从flickr中提取一组图像:Jquery:Pulling flickr set+;获取item.title,jquery,json,flickr,Jquery,Json,Flickr,我正试图从flickr中提取一组图像: <ul class="thumb"> <li> <p class="artisan-name">item.title</p> <img src="item.photo"> </li> ..... as many li's as there are photos in the set </ul> 项目名称 ..... 照片
<ul class="thumb">
<li>
<p class="artisan-name">item.title</p>
<img src="item.photo">
</li>
..... as many li's as there are photos in the set
</ul>
-
项目名称
..... 照片集里有多少张李就有多少张
到目前为止,我的照片都用li包好了,但我一辈子都不知道如何在ul的img之前得到p
到目前为止,我所拥有的:
<script type="text/javascript">
$(document).ready(function() {
$.getJSON("http://api.flickr.com/services/feeds/photoset.gne?set=72157623815188370&
nsid=12295778@N08&lang=en-us&format=json&jsoncallback=?", function(data){
$.each(data.items, function(i,item){
$("#title").html(item.title);
$("<img/>").attr("src", item.media.m).appendTo("ul.thumb")
.wrap("<li>");
});
});
});
</script>
<ul class="thumb"></ul>
$(文档).ready(函数(){
$.getJSON(“http://api.flickr.com/services/feeds/photoset.gne?set=72157623815188370&
nsid=12295778@N08&lang=en-us&format=json&jsoncallback=?”,函数(数据){
$.each(data.items,function(i,item){
$(“#title”).html(item.title);
$("");
});
});
});
使用:
$。每个(数据项、函数(i、项){
$(“#title”).html(item.title);
var liElem=$(“”).append(“”+item.title+””);
$("
为了获得更好的性能:
<script type="text/javascript">
$(document).ready(function() {
$.getJSON("http://api.flickr.com/services/feeds/photoset.gne?set=72157623815188370&
nsid=12295778@N08&lang=en-us&format=json&jsoncallback=?", function(data){
if(data.items && data.items.length){
var arrLength=data.items.length,v='',dataHtml='';
for(var i=0;i<arrLength;++i){
v=data.items[i];
if(v.media && v.media.m) dataHtml+='<li><p>'+(v.title||'')+'</p><img src="'+v.media.m+'" alt=""/></li>';
}
$('ul.thumb').append(dataHtml);
}
});
});
</script>
$(文档).ready(函数(){
$.getJSON(“http://api.flickr.com/services/feeds/photoset.gne?set=72157623815188370&
nsid=12295778@N08&lang=en-us&format=json&jsoncallback=?”,函数(数据){
if(data.items&&data.items.length){
var arrLength=data.items.length,v='',dataHtml='';
对于(VarI=0;iVarListItems='';
$.each(data.items,function(i,item){
//构造html字符串
//不要在循环内操作DOM
//太贵了
列表项
+=''+
“”+项目.标题+”
'+
''+
“ ”;
});
//只操作DOM一次
//添加所有li元素的步骤
$('ul.thumb')。追加(列表项);
更新:以下是完整的代码(删除注释)
$(文档).ready(函数(){
$.getJSON(“http://api.flickr.com/services/feeds/photoset.gne?set=72157623815188370&nsid=12295778@N08&lang=en us&format=json&jsoncallback=?”,函数(数据){
var listItems='';
$.each(data.items,function(i,item){
列表项
+=''+
“”+项目.标题+”
'+
''+
“ ”;
});
$('ul.thumb')。追加(列表项);
});
});
感谢您的快速响应!由于某些原因,这对我不起作用。请参阅:我尝试将其添加到我的标记中[在…函数(数据){..之后立即添加了变量..]但它不起作用。我认为你给出的推理是更正确的答案,但无法实现它。谢谢你的时间!@isa blanche:你应该在我添加它的地方添加var listItems='';
,让它发挥作用。遵循我的代码,它肯定会起作用。不过,你可以决定什么最适合你。我只是想让您知道,与我上面建议的解决方案相比,在循环中修改DOM的速度会非常慢。很抱歉,我对jquery缺乏了解,我在您使用的地方添加了它,在$.getJSON函数之后。我想这就是您使用它的地方?我用完整的代码更新了我的答案。这应该会起作用。谢谢我真的很感激。
<script type="text/javascript">
$(document).ready(function() {
$.getJSON("http://api.flickr.com/services/feeds/photoset.gne?set=72157623815188370&
nsid=12295778@N08&lang=en-us&format=json&jsoncallback=?", function(data){
if(data.items && data.items.length){
var arrLength=data.items.length,v='',dataHtml='';
for(var i=0;i<arrLength;++i){
v=data.items[i];
if(v.media && v.media.m) dataHtml+='<li><p>'+(v.title||'')+'</p><img src="'+v.media.m+'" alt=""/></li>';
}
$('ul.thumb').append(dataHtml);
}
});
});
</script>
var listItems = '';
$.each(data.items, function(i,item){
// construct the html string
// do NOT manipulate DOM inside a loop
// it's to costly
listItems
+= '<li>'+
'<p class="artisan-name">'+item.title+'</p>'+
'<img src="'+item.media.m+'" />'+
'</li>';
});
// manipulate the DOM only once
// to add all the li elements
$('ul.thumb').append(listItems);
$(document).ready(function() {
$.getJSON("http://api.flickr.com/services/feeds/photoset.gne?set=72157623815188370&nsid=12295778@N08&lang=en-us&format=json&jsoncallback=?", function(data){
var listItems = '';
$.each(data.items, function(i,item){
listItems
+= '<li>'+
'<p class="artisan-name">'+item.title+'</p>'+
'<img src="'+item.media.m+'" />'+
'</li>';
});
$('ul.thumb').append(listItems);
});
});