javascript - 如何使用 javascript 附加一个 li 和链接元素
问题描述
我正在构建一个灯箱,当我单击具有特定于特定图像列表的不同类的 div 时,我想显示一个图像列表。灯箱正在工作,当我单击 div 时,它会出现,但是当我单击具有“.work-1”类的潜水时,问题就出现了,列表显示为字符串而不是实际图片。我来求救了。
/* Gallery operation*/
const button = document.querySelectorAll('.gallery');
const list = document.createElement('ul');
const lightbox = document.createElement('div');
const parentDiv = document.querySelector('header').parentNode;
const childDiv = document.querySelector('header');
/*const newList =*/
const logo = [
'<a href="images/logos1.jpg"></a> ',
'<a href="images/logos2.jpg"></a> ',
'<a href="images/logos3.jpg"></a> ',
'<a href="images/logos4.jpg"></a> ',
];
const flyer = [
'<a href="images/logos1.jpg"></a> ',
'<a href="images/logos2.jpg"></a> ',
'<a href="images/logos3.jpg"></a> ',
'<a href="images/logos4.jpg"></a> ',
];
button.forEach(function getThem(div){
div.addEventListener('click',function(){
const box = parentDiv.insertBefore(lightbox, childDiv);
box.id = 'lightbox';
const newBox = box.appendChild(list);
function getList(){
if(e.target.className === 'work-1'){
logo.forEach(function(logo){
var li = document.createElement('li');
li.innerText = e;
newBox.append(li);
});
}else if(e.target.className === 'work-2'){
flyer.forEach(function(flyer){
var li = document.createElement('li');
li.innerText = e;
newBox.append(li);
});
}
};
box.getList();
box.classList.add('active');
console.log(button);
});
lightbox.addEventListener('click', e => {
if (e.target !== e.currentTarget) return
lightbox.classList.remove('active')
});
解决方案
我认为您的策略不太正确,我认为您想要做的是显示图像
<img>
而不是锚标签
<a href'..>
您可以通过将 an 附加<img>
到您的 li来获得此结果src='images/something.jpg'
因此,您希望有一个包含图像所有 url 的列表:
const logos = [
'images/logos1.jpg',
'images/logos2.jpg',
'images/logos3.jpg',
'images/logos4.jpg',
]
然后尝试添加这个:
logos.forEach(function(logo){
var li = document.createElement('li');
var img = document.createElement('img');
img.src = logo;
li.append(img);
newBox.append(li);
});
ES6:
logo.forEach((logo) => {
const li = document.createElement('li');
const img = document.createElement('img');
img.src = logo; // set the url of your image like 'images/logos1.jpg'
li.append(img);
newBox.append(li);
})
推荐阅读
- python - 如何在 matplotlib 中自定义适合水平条形图?
- r - R gsub 数字和变量的空间
- python - 如何找到旋转图像边界框的新坐标以修改其 xml 文件以进行 Tensorflow 数据增强?
- javascript - Parse Cloud 代码使用 Parse 3.0.0 定义
- python - 将数据框值组合到新的数据框
- react-navigation - 使用标题中的按钮反应堆栈中的导航选项卡
- angular - no-unused-variable TSLint 规则不适用于私有 @HostBinding
- angular - angular2 + 文件上传进度指示器
- sql - 填补时间空白
- windows - 无法运行在 SYSTEM 帐户下发出 https 请求的 Windows 任务