javascript - 单击它们后使编号图像消失的最简单方法是什么?
问题描述
我有一些非常基本的代码,屏幕上有数字 1-10(标题为 1.jpg、2.jpg 等)的图像。生成一个随机数,如果点击正确数字的图像,则会显示提示。如果单击了不正确的数字,我希望图像消失。我知道如何为每个图像使用单独的函数来实现这一点,但是在一个函数中完成这一切的最佳方法是什么?
解决方案
首先:您的一些代码片段将有助于在此处给出合格的答案。
假设这样的内容是您的实际 html 结构(注意:如果您的标签中有一个id
,您可以省略一些步骤,例如):img
<img src="1.jpg" id="1">
<div id="image-wrapper">
<img src="1.jpg">
<img src="2.jpg">
<img src="3.jpg">
...
</div>
使用纯 JavaScript,您可以执行以下操作:
var rnd = ... //produce your random number
document.querySelectorAll("img").forEach(img => {
img.onclick = () => {
let src = img.src;
src = src.split("/"); //get an array of the source of your image
src = src[src.length - 1]; //get the last position inside the array (resembling the filename)
src = src.split("."); //split the filename by '.' (to separate filename and -type in the next step)
src = src[0];
src = parseInt(src); //make the extracted src and the random number you produced comparable by converting to int
if(rnd !== src) {
img.parentElement.removeChild(img);
} else {
alert("foo"); //your prompt
}
};
});
说明:使用该方法document.querySelectorAll
,您可以选择一个 html 节点数组(使用与 CSS 相同的选择器)。array.forEach
您现在可以通过使用(请参阅mdn以获得进一步说明)来迭代此数组。img
现在,您可以在每个上注册一个onclick
-method。鉴于您确实只是src
将img
用作鉴别器,您必须在下一步中从 src 中提取实际文件名。
在将您的随机数与文件名进行比较后,您使用了一个事实,即您正在处理一个实际的 DOM-Object 此处(在 forEach 循环中):您通过Node.parentElement
( mdn ) 获取父节点,您可以在其中给出命令删除它的一个孩子(在我们的例子中是我们当前的图像)。
我希望对您有所帮助 - 如需更多帮助,请提供有关该问题的更多信息:)
推荐阅读
- javascript - 如何在Vue中使模态可打印?
- java - 已定义的变量返回到未定义的内部订阅
- smtp - 当其凭据通过网络邮件工作时,为什么邮件给出异常为“客户端无权作为此发件人发送”
- .htaccess - TYPO3 将扩展 URL tx_xyz 重写为另一个名称
- python - AttributeError: type object 'PyMongo' has no attribute 'db' with Flask Blueprint Mongodb
- javascript - 保存视频给黑屏
- prolog - 如何在序言中使用 line/2 谓词打印带有输入的行
- java - 多次调用 KeyPressed 事件
- android - Pjsip pjsua2(Android)是否有任何注册监听器?
- debugging - 如何启用 Xbox One 开发者模式激活?