当我尝试获取img src时,为什么要获取浏览器URL?

时间:2014-10-07 09:34:32

标签: javascript jquery

我正在检查图片是否有网址源。

// 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。那是为什么?
See the jsFiddle here

5 个答案:

答案 0 :(得分:4)

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

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

Updated Fiddle

答案 1 :(得分:2)

相对网址""被解析为“与其相对的网址相同”,即当前文档。

答案 2 :(得分:0)

<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'));

UPDATED FIDDLE

答案 3 :(得分:0)

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

所以使用这个代码就可以了

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

它会起作用

答案 4 :(得分:-1)

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