9

我正在尝试确定 DIV 是否有图像。我的 DIV 的结构如下:

<li class="customData">
  <div class="customdata1"><img src="" /></div>
  <div class="customdata1"><input type="text" /></div>
</li>
4

6 回答 6

17

尝试这个:

$('.customData div').each(function() {
    if ($(this).find('img').length) {
        // there is an image in this div, do something...
    }
});

这将imgdiv. 如果您只希望它作为直系后代,请将其用于if条件:

$(this).children('img').length
于 2013-01-18T12:21:44.310 回答
9

您可以使用has()选择器

$('.customData div:has(img)').doSomething()

不确定您想做什么,例如,如果您想计算它们:

  alert(  $('.customData div:has(img)').length)

API 参考http://api.jquery.com/has-selector/

于 2013-01-18T12:34:23.413 回答
1

首先让我们指定 div

var dD = getElementById("desiredDivID");

现在让我们找到 div 的子元素:

var elements = dD.childNodes.length;

现在我们遍历每个元素节点:

for(index = 0; index < elements; index++){
node = dD.childNodes[index];
if (node && node.nodeType == 1 && node.nodeName == 'IMG'){
    dD.removeChild(node);
            }
}

在最后一个 if 语句中,我们检查节点是否存在,然后检查节点类型和节点名称。这些检查中的每一个都必须返回 true,然后 .removeChild(node) 删除指定的元素节点,该节点在“IMG”字符串中标记。

于 2014-06-12T21:49:32.023 回答
0

也许这会有所帮助

if ($(".customData:contains('img')")) {
 console.log("sucess");
}
于 2013-08-09T09:30:28.650 回答
0

如果我理解正确,你想检查它是否有图像,所以另一种方法我会说你需要检查 src 属性,如果你有一个 img 标签但没有 src 会发生什么?这有时会发生在动态环境中(使用实际的编程代码而不是纯 HTML)。

$('.customData .customdata1').find('img').attr('src');
于 2017-11-21T16:20:59.810 回答
0

HTML

<img src="some-url" class="banner-image">

Javascript方式

console.log(document.querySelector('.banner-image').tagName);

jQuery方式:

console.log(jQuery('.banner-image')[0].tagName);

添加 [0] - JQuery 元素转换为 Javascript Dom 对象。如果您有循环,则不需要 [0]。

我刚刚在工作时发现了它,它与任何浏览器兼容。

于 2019-09-11T13:22:24.593 回答