1

如果 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>

查询:

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

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

4

4 回答 4

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

或更简单

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

演示

于 2012-07-20T08:47:03.887 回答
4
if ($("#productInfoGrid img").length == 0) {
    $("#productInfoGrid").hide();
}
于 2012-07-20T08:48:08.573 回答
2
$("div#productInfoGrid").has('img').hide();

演示

笔记

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

于 2012-07-20T08:58:12.583 回答
1

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

if ($("#productInfoGrid").find('img').length == 0) {
    $("#productInfoGrid").hide();
}
​
于 2012-07-20T08:57:29.380 回答