javascript - 是否可以使用 vanilla js 将 XML 注入 DOM?
问题描述
我正在做一个编码评估,我们使用 HTML、CSS 和 vanilla JS(没有 jQuery)制作简单的响应式照片库。其中一项任务是在单击时全屏显示照片。我找到了一种简单的方法,其中包含一个输入元素并根据它是否被单击来更改状态。我现在的问题是在我获取和映射图片时包含输入标签。
这是我通过响应获取图片和地图的地方:
const getPics = async () => {
try {
const res = await fetch('http://localhost:8887/data/photos.json');
const pics = await res.json();
pics.map((pic) => {
let image = document.createElement('img');
image.src = pic.urls.small;
image.id = pic.id;
image.onclick = function () {
zoom(image.id);
};
document.querySelector('.gallery').appendChild(image);
});
} catch (error) {
console.log(error);
}
};
但是,我想在我的图像上方添加一个输入元素和一个包装它的标签元素,如下所示:
input[type=checkbox] {
display: none;
}
.container img {
margin: 100px;
transition: transform 0.25s ease;
cursor: zoom-in;
}
input[type=checkbox]:checked ~ label > img {
transform: scale(2);
cursor: zoom-out;
}
<div class="container">
<input type="checkbox" id="zoomCheck">
<label for="zoomCheck">
<img src="https://via.placeholder.com/200">
</label>
</div>
当我映射来自我的 fetch 请求的响应数据时,如何将这两个元素添加到 DOM?是否可以使用模板文字将所有内容作为 XML 注入?我试图这样做,但没有运气:
const getPics = async () => {
try {
const res = await fetch('http://localhost:8887/data/photos.json');
const pics = await res.json();
pics.map((pic) => {
let img = `
<input type="checkbox" id="zoomCheck">
<label for="zoomCheck">
<img src=${pic.urls.small} id=${pics.id}>
</label>`
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(img,"text/xml");
document.querySelector('.gallery').appendChild(img);
});
} catch (error) {
console.log(error);
}
};
Anyone have any advice as to how I could achieve this? Again, it has to be using vanilla JS
解决方案
推荐阅读
- scala - 为服务总线 sas 连接导入包
- c# - 将 textbox.text 乘以 combobox.text 并将结果显示到 textbox.text
- sql-server - SQL Server - 连接两个具有不同值的表
- python - Django在表格中逐行编辑
- haskell - 如何编写标准测试?
- google-maps - 更改默认谷歌地图标记大小
- excel - VBScript 转换文件并用未知密码锁定文件
- prestashop - 如何用 %% 翻译字符串
- python - 为什么 cv2.bilateralFilter 对于不同的数据类型表现如此不同?
- spyder - QGIS,gdal 从 conda forge 安装,但 Spyder 中没有代码完成绑定