谁能建议我如何检查元素是否包含图像?我假设它是否包含图像源,但不确定如何编码。
问问题
19799 次
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 回答