8

谁能建议我如何检查元素是否包含图像?我假设它是否包含图像源,但不确定如何编码。

4

5 回答 5

12

你可以这样做:

if( elem.getElementsByTagName('img').length > 0) {
    // there is an image
}

编辑:看到你的评论后,试试这个:

var imgs = elem.getElementsByTagName('img'), len = imgs.length, i;
for( i=0; i<len; i++) {
    if( imgs[i].src.match(/\/image\.jpg$/)) {
        // the image is there
        break;
    }
}
于 2013-03-23T20:58:13.320 回答
2

如果您使用的是 jQuery,您可以执行以下操作:

if($('#container_id').find('img').length > 0) {
     // Image found on container with id "container_id"
}
于 2013-03-23T20:59:14.290 回答
1

这应该可以工作,并且不需要像 Anael 的解决方案那样的 JQuery:

<div id="test1"><img src="img.jpg" /></div>
<div id="test2">Hello</div>    

<script>
function hasImage(id) {
    var childElements = document.getElementById(id).childNodes;
    for (var i = 0; i < childElements.length; i++) {
        if (childElements[i].localName != null && childElements[i].localName.toLowerCase() == "img") {
            return true;
        }
    }
    return false;
}

alert(hasImage('test1')); // true
alert(hasImage('test2')); // false
</script>

JSFiddle 的演示:http: //jsfiddle.net/qLPJC/

更新:

要查看它是否有特定的src尝试此更新:

function hasImage(id) {
    var childElements = document.getElementById(id).childNodes;
    for (var i = 0; i < childElements.length; i++) {
        if (childElements[i].localName != null && childElements[i].localName.toLowerCase() == "img") {
            if (childElements[i].getAttribute('src') != null && childElements[i].getAttribute('src').toLowerCase() == "img.jpg") {
                return true;
            }
        }
    }
    return false;
}

alert(hasImage('test1'));
alert(hasImage('test2'));

更新了 JS Fiddle 示例:http: //jsfiddle.net/qLPJC/2/

于 2013-03-23T21:03:36.867 回答
0

您可以使用 js getElementById 获取图像元素,然后您可以轻松访问该图像的 src,如果 src 不为空或者如果包含则 src 应该具有图像路径,它会告诉您天气元素包含图像。

   <html>
    <head>
    <script>
    function myFunction()
    {
     var imgSrc = document.getElementById("myImg").attr('src');
     alert(imgSrc);
    }
    </script>
    </head>

    <body>

    <h1>My Web Page</h1>

    <p id="demo">A Paragraph</p>

    <img id="myImg" src="http://www.blah.com/img.jpg" onclick="myFunction()"></img>

    </body>

</html>
于 2013-03-23T21:05:25.377 回答
0

就像是

$("div:has(img)")

如果您使用的是 jquery

于 2013-03-23T21:10:57.890 回答