我使用以下代码动态填充图片的src
属性:
function getLocalUrl(item) {
if (item.item_id != null && item.item_id != "") {
return host + "images/" + item.item_tid + "-" + item.item_id + ".jpg";
} else {
return host + "images/temp/" + item.item_tid + ".jpg";
}
}
...
var cont = "<img class=\"image image-large\" src=\"" + getLocalUrl(item) + "\"/>";
$(element).append(cont);
然而,当我查看浏览器发出的http请求时,我会看到其中两个:第一个
/images/undefined-1.jpg
和第二个
/images/correctstring-1.jpg
当然第一个产生错误,但第二个正确地下载图像,因此最终结果是正确的。但我仍然不明白为什么要提出第一个请求。函数getLocalUrl仅被调用一次,并且始终定义item_tid
字段(否则将不会生成第二个请求)。我是一个新手,所以我可能会遗漏一些非常基本的东西。
答案 0 :(得分:0)
替换:
if (item.item_id != null && item.item_id != "") {
使用:
if (item.item_id != null && item.item_id != "" && item.item_tid) {
或者,更短:
if (item.item_id && item.item_tid) {
您没有检查item_tid
是否为undefined
。
但是,这会导致return host + "images/temp/" + item.item_tid + ".jpg";
被使用。由于item_tid
为undefined
,您仍然无法获得所需的结果。
问题是,如果 item_tid
为undefined
,则无法根据此构建网址。
答案 1 :(得分:0)
检查item.item_tid
是否未定义,因为从您的代码item.item_tid
中看到未定义。
更改
if (item.item_id != null && item.item_id != "") {
与
if (item.item_id && item.item_tid) {