【发布时间】:2020-04-04 04:59:39
【问题描述】:
我是 JavaScript 新手。我想要做的是重写我的data-project 属性以显示我的projects 数组中的内容,如果projects 数组大于6,因为项目框只假设容纳6。我'一直在尝试查找有关 DOM 的更多信息,但我没有找到适合我的案例的任何东西。 如果需要更多代码来帮助您理解,请告诉我。还有一些按钮可以过滤存储在数组中的内容(位于不同的文件中)。这个文件也被导入到我的index.html。
此外,如果您有任何学习 DOM 的重要资源,我会很乐意将它们发送给我。谢谢!
我的 HTML
<div class="wrapper">
<div class="row" data-project="1">
<img class="logo" src="https://static.vecteezy.com/system/resources/previews/000/350/423/non_2x/vector-checklist-icon.jpg" alt="image">
<div class="top">
<h3 class="title">Job Listing</h3>
<h6 class="language">HTML/CSS</h6>
<p class="desc">Static Page Containing Job Listings</p>
</div>
<div class="bottom">
<div class="image"> </div>
<p class="type">Personal</p>
</div>
</div>
<div class="row" data-project="2">
<img class="logo" src="https://static.vecteezy.com/system/resources/previews/000/350/423/non_2x/vector-checklist-icon.jpg" alt="image">
<div class="top">
<h3 class="title">Calculator</h3>
<h6 class="language">HTML/CSS, JavaScript</h6>
<p class="desc">Basic JavaScript Calculator</p>
</div>
<div class="bottom">
<div class="image"> </div>
<p class="type">Personal</p>
</div>
</div>
<div class="row" data-project="3">
<img class="logo" src="https://static.vecteezy.com/system/resources/previews/000/350/423/non_2x/vector-checklist-icon.jpg" alt="image">
<div class="top">
<h3 class="title">TODO</h3>
<h6 class="language">HTML/CSS, JavaScript, React</h6>
<p class="desc">Organize your everyday life with this web app made with React</p>
</div>
<div class="bottom">
<div class="image"> </div>
<p class="type">Personal</p>
</div>
</div>
<div class="row" data-project="4">
<img class="logo" src="https://static.vecteezy.com/system/resources/previews/000/350/423/non_2x/vector-checklist-icon.jpg" alt="image">
<div class="top">
<h3 class="title">Login and Signup</h3>
<h6 class="language">HTML/CSS</h6>
<p class="desc">Static Page for logging in and signing up</p>
</div>
<div class="bottom">
<div class="image"> </div>
<p class="type">Personal</p>
</div>
</div>
<div class="row" data-project="5">
<img class="logo" src="https://static.vecteezy.com/system/resources/previews/000/350/423/non_2x/vector-checklist-icon.jpg" alt="image">
<div class="top">
<h3 class="title">RNG Therapy Site</h3>
<h6 class="language">WordPress</h6>
<p class="desc">WordPress site that allows users to schedule appointments.</p>
</div>
<div class="bottom">
<div class="image"> </div>
<p class="type">Client</p>
</div>
</div>
<div class="row" data-project="6">
<img class="logo" src="https://static.vecteezy.com/system/resources/previews/000/350/423/non_2x/vector-checklist-icon.jpg" alt="image">
<div class="top">
<h3 class="title">Coffee Shop Website</h3>
<h6 class="language">HTML/CSS, JavaScript, React</h6>
<p class="desc">Static Page for a Coffee Shop</p>
</div>
<div class="bottom">
<div class="image"> </div>
<p class="type">Client</p>
</div>
</div>
</div>
我的 JavaScript(我知道它很乱)
const projectAttributes = [
document.querySelector('[data-project="1"]'),
document.querySelector('[data-project="2"]'),
document.querySelector('[data-project="3"]'),
document.querySelector('[data-project="4"]'),
document.querySelector('[data-project="5"]'),
document.querySelector('[data-project="6"]'),
];
let i = 0;
function domReplaceProjects(projects) {
console.log(projectAttributes.length);
//Use projects array size for loop conditional
if(projects.length <= 6) {
for(i = 0; i <= projects.length; i++) {
projectAttributes[i] = `
<div class="top">
<h3 class="title">${project.name}</h3>
<h6 class="language">${project.desc}</h6>
<p class="desc">${project.language}</p>
</div>
<div class="bottom">
<div class="image"> </div>
<p class="type">${project.type}</p>
</div>
<div class="row">
<img class="logo" src="https://static.vecteezy.com/system/resources/previews/000/350/423/non_2x/vector-checklist-icon.jpg" alt="image">
</div>
`
}
}
//Use data attributes array size for loop conditional
else {
for(i = 0; i < projectAttributes.length; i++) {
//logic here
}
}
}
【问题讨论】:
-
“如果你有任何学习 DOM 的好资源” - MDN: Document Object Model (DOM) 和 Introduction to the DOM
标签: javascript html arrays dom