检查图像是否不存在然后隐藏div

时间:2012-07-20 08:44:40

标签: jquery html css

如果div中有图像,则隐藏div。但如果图像确实存在,那么我需要保持div可见。

但它不起作用。这是我的代码:

HTML:

<table id="FeatureBox">
    <tbody>
    <tr>
      <td>
        <div id="productInfoGrid">
          <div id="ProductIconsTitle">
            <p>PRODUCT FEATURES</p>
          </div><img width="563" height="337" src="http://www.preserveshop.co.uk/images/black-jam-jar-lid-58mm.jpg" alt="http://www.preserveshop.co.uk/images/black-jam-jar-lid-58mm.jpg" style="cursor: -moz-zoom-in"><div style="clear:both;"></div>
        </div>
      </td>
    </tr>
  </tbody>

JQUERY:

if ($("#div#productInfoGrid:not(img)").length) {
    $("#productInfoGrid").hide();
}

的jsfiddle http://jsfiddle.net/wJgpr/3/

4 个答案:

答案 0 :(得分:5)

if ( !$("#productInfoGrid").has("img") ) {
    $(this).hide();
}

或更简单

$("#productInfoGrid").not(':has("img")').hide();​

DEMO

答案 1 :(得分:4)

if ($("#productInfoGrid img").length == 0) {
    $("#productInfoGrid").hide();
}

答案 2 :(得分:2)

$("div#productInfoGrid").has('img').hide();

<强> Demo

注意

$("#div#productInfoGrid:not(img)")应为$("div#productInfoGrid:not(img)")

答案 3 :(得分:1)

您可以使用.find() (参考:http://api.jquery.com/find/

if ($("#productInfoGrid").find('img').length == 0) {
    $("#productInfoGrid").hide();
}
​