繁体   English   中英

尝试获取img src时为什么会得到浏览器URL?

[英]Why am I getting the browser URL when I try to get the img src?

我正在检查图像是否有URL源。

// HTML (short version)
<div id="image-drop-box"> 
    <img class="promo-img hidden" title="Promo image" src="">
</div>

//JS
var promoImg = $('#image-drop-box .promo-img');
var missingImg = promoImg.prop('src').length == 0 ? true : false;

console.log(promoImg.prop('src').length);
console.log(promoImg.prop('src'));

所有img源都是空的,它一直返回浏览器URL。 这是为什么?
在这里查看jsFiddle

您正在查看src 属性 ,该属性相对于文档已解析; 空白的相对URL会解析为与其所在文档相同的URL。如果您想知道属性是否为空白,请使用attr查看attr

var missingImg = !promoImg.attr('src'); // A blank string is falsey, so !"" is true
console.log("attr: " + promoImg.attr('src'));

更新小提琴

相对URL ""解析为“与它相对于的URL相同”,即当前文档。

<div id="image-drop-box"> 
<img class="promo-img hidden" title="Promo image" src="">
</div>

// JS

var promoImg = $('#image-drop-box .promo-img');
var missingImg = promoImg.attr('src').length == 0 ? true : false;

console.log(promoImg.attr('src').length);
console.log(promoImg.attr('src'));

更新场

通过使用.prop('src')它返回值,但具有完整的域路径

因此,使用此代码可以正常工作

var promoImg = $('#image-drop-box .promo-img');
var missingImg = promoImg.attr('src') ? true : false;
console.log(missingImg);

它会工作

这是因为您获得了相对网址。 如果您具有<img src="images/a.png"> ,则意味着您的文件所在的目录下有images dir。 现在,您将其指定为空字符串,这意味着您的图像位于当前文档的旁边。

暂无
暂无

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

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