如果具有id=module-120
的div包含图像的来源,其中包含:completion-auto-y
我想隐藏该父div module-120
。
这是我所掌握的,但是没有用。
if (document.getElementById('#module-120')) {
function verifyImageURL(url, callBack) {
var img = new Image();
img.src = url;
img.onload = function () {
callBack(true);
};
img.onerror = function () {
callBack(false);
};
}
var url = "completion-auto-y";
verifyImageURL(url, function (imageExists) {
if (imageExists === true) {
document.getElementById('#module-120').style.display="none";
}
});
}
我认为问题出在var url = "completion-auto-y"
之内。有人知道如何解决此问题吗?
答案 0 :(得分:4)
首先,我们要清楚地知道,给定的id
仅应包含一个元素,因此,您最多只需隐藏一个元素即可。
因此,解决方案是将.querySelector()
与适当的CSS选择器一起使用,以获取对具有应隐藏的父对象的图像的引用。然后隐藏父元素。
// Get the image that matches the criteria
let match = document.querySelector("div[id='module-120'] img[src*='completion-auto-y']");
match.parentNode.classList.add("hidden"); // Hide the parent element
.hidden { display:none; }
<div id="module-120">
<img src="completion-auto-x">
I should not be hidden
</div>
<div id="module-120">
<img src="completion-auto-y">
I should be hidden
</div>