我有这个HTML:
<div id="product_imgfiles_container" class="row">
<div class="col-xs-4 col-md-2">
<div class="thumbnail product_imgfiles">
<img src="./user/product/2016/04/07/2608/0024454001460020491/img/29310931.jpg ">
<a href=""><span><i class="fa fa-times-circle"></i> delete</span></a>
</div>
</div>
<div class="col-xs-4 col-md-2">
<div class="thumbnail product_imgfiles">
<img src="./user/product/2016/04/07/2608/0024454001460020491/img/29340931.jpg ">
<a href=""><span><i class="fa fa-times-circle"></i> delete</span></a>
</div>
</div>
<div class="col-xs-4 col-md-2">
<div class="thumbnail product_imgfiles">
<img src="./user/product/2016/04/07/2608/0024454001460020491/img/29311931.jpg ">
<a href=""><span><i class="fa fa-times-circle"></i> delete</span></a>
</div>
</div>
</div>
我有这个jquery:
$.getJSON("controller/ctrl.dropzonejs-imgfiles.php?dir=XXX",function(json){
$.each( json, function( key, val ) {
alert (val);
if (!$("#product_imgfiles_container img[src="+val+"]").length){
alert ("this val not in your HTML yet");
}
});
});
当没有IF语句时,alert (val);
可以显示所有json数据。但是当我需要使用.length
进行验证时,它会停止迭代。我仍然无法执行alert ("this val not in your HTML yet");
。
如何正确使用.length
验证json中的src路径是否已经存在于HTML中?
答案 0 :(得分:1)
您可能从jQuery /浏览器的选择器引擎中收到错误。您需要将val
中的值放在引号中:
$("#product_imgfiles_container img[src='"+val+"']")
// Note -------------------------------^-------^
您可以使用Web控制台查看错误。
答案 1 :(得分:1)
将您的代码更改为以下内容: -
if ($("#product_imgfiles_container img[src='"+val+"']").length==0){
alert ("this val not in your HTML yet");
}
答案 2 :(得分:0)
我确信&#34; val&#34;从JSON获取的值无效,&#34; val&#34;有完整的路径,包括图像名称。
最好只使用图像名称而不是完整路径。
img src="/dummy/image/logo_header.png"
var x = $("img[src$='logo_header.png']");
答案 3 :(得分:-2)
您可以将if条件更改为
if (!$("#product_imgfiles_container img").prop('src') == val){
alert ("this val not in your HTML yet");
}