有人可以建议我如何检查元素是否包含图像?我假设它是否包含图像源但不确定如何编码。
答案 0 :(得分:6)
你可以这样做:
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;
}
}
答案 1 :(得分:2)
如果你使用的是jQuery,你可以这样做:
if($('#container_id').find('img').length > 0) {
// Image found on container with id "container_id"
}
答案 2 :(得分:0)
这应该有效,并且不需要像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小提琴示例:http://jsfiddle.net/qLPJC/2/
答案 3 :(得分:0)
类似
$("div:has(img)")
如果您使用的是jquery
答案 4 :(得分:-1)
你可以使用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>