该代码允许用户输入搜索词,然后从Flickr中呈现一系列具有该标签的图像。这按预期工作,但我不明白为什么这会产生如此多的img标签。为什么这段代码添加空的img标签?
var main = function() {
"use strict";
var url = "http://api.flickr.com/services/feeds/photos_public.gne?tags=catss&lang=en-us&format=json&jsoncallback=?";
var $searchInput = $("<input>");
$("header").append($searchInput);
$.getJSON(url, function (flickrResponse) {
flickrResponse.items.forEach(function (photo) {
var $img = $("<img>").hide();
$img.attr("src", photo.media.m);
$searchInput.on("keypress", function (event) {
if (event.keyCode === 13) {
$img.remove();
$img.removeAttr('src');
var $tag = photo.tags.split(" ");
$tag.forEach(function (tag) {
if (tag === $searchInput.val()) {
$img.attr("src", photo.media.m);
}
});
$("main .photos").append($img);
$img.fadeIn();
}
});
$("main .photos").append($img);
$img.fadeIn();
});
}).fail(function (jqxhr, textStatus, error) {
var err = textStatus + ', ' + error;
alert("Request Failed: " + err);
});
};
$(document).ready(main);
在上面的代码的结果:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<body>
<header><input></header>
<main>
<div class="photos">
<img style="">
<img style="">
<img style="">
<img style="">
<img style="">
<img style="">
<img style="">
<img style="">
<img style="">
<img style="">
<img style="" src="http://farm9.staticflickr.com/8299/7875996296_734b9c599d_m.jpg">
<img style="">
<img style="">
<img style="">
<img style="">
<img style="">
<img style="">
<img style="">
<img style="">
<img style="">
</div>
</main>
<footer> </footer>
<script src="http://code.jquery.com/jquery-2.1.4.min.js">
<script src="javascripts/app.js">
</body>
</html>
为什么它被添加这么多的img标签?
东阳flickrResponse.items.forEach'的'。如果您经过帮助,请使用您的代码创建一个小提琴。 – lshettyl
小提琴的意思是使用这个网站http://jsfiddle.net或其他类似的向我们展示一个〜工作示例 –
[代码在小提琴](https://jsfiddle.net/v1s3kdau/#&togetherjs=PxoTvdbvwG)以及我已经添加代码小提琴,但我有一个问题,让它运行。 – tasqyn