jQuery长度无法验证

时间:2016-04-12 10:47:22

标签: javascript jquery

我有这个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中?

4 个答案:

答案 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");
        }