[英]How i can add element in correct array
I can't do that "deal__card" apper exactly in that "task__card" in which i press button "add__deal__btn".It appear in the last "task__card" which exist.我不能完全在我按下按钮“add__deal__btn”的那个“task__card”中做那个“deal__card”。它出现在存在的最后一个“task__card”中。 The problam that I can't add in right element in array i suppose but I dont know how can I solve this problem.我想我无法在数组中添加正确元素的问题,但我不知道如何解决这个问题。 How can i fix it?我该如何解决?
HTML HTML
<div class="add">
<input type="text" class="add__title">
<br>
<button class="add__btn">Add</button>
</div>
<div class="tasks"></div>
CSS CSS
.task__card{
display: inline-block;
margin-right: 10px;
background: darksalmon;
}
.deal__card{
background-color: #b4d8ff;
margin: 8px;
}
JS JS
let addTitle = document.querySelector('.add__title');
let addBtn = document.querySelector('.add__btn');
let tasks = document.querySelector('.tasks');
addBtn.onclick = function() {
let task = document.createElement('div');
task.className = 'task__card';
let taskTitle = document.createElement("h4");
taskTitle.innerHTML = addTitle.value
task.appendChild(taskTitle)
let addDealinput = document.createElement("input");
let br = document.createElement("br");
addDealinput.className = "add__deal__input";
let addDealBtn = document.createElement("button");
addDealBtn.className = "add__deal__btn";
addDealBtn.innerHTML = "Add deal";
task.appendChild(addDealinput);
task.appendChild(br);
task.appendChild(addDealBtn);
tasks.append(task);
let dealBtn = document.querySelectorAll('.add__deal__btn');
let taskCard = document.querySelectorAll('.task__card');
let dealInput = document.querySelectorAll('.add__deal__input');
for(let l=0;l<taskCard.length;l++){
for(let i = 0;i < dealBtn.length;i++){
dealBtn[i].onclick = function(){
for(let inp=0;inp<dealInput.length;inp++){
taskDeal = document.createElement('div');
taskDeal.className = 'deal__card';
let p = document.createElement("p");
p.innerHTML = dealInput[inp].value;
taskDeal.appendChild(p);
}
taskCard[l].append(taskDeal);
}
}
}
}
Thank you a lot非常感谢
You should use this
here.你应该在这里使用this
。 Try this:尝试这个:
dealBtn[i].onclick = function() {
taskDeal = document.createElement('div');
taskDeal.className = 'deal__card';
let p = document.createElement("p");
p.innerHTML = this.parentElement.querySelector('.add__deal__input').value;
taskDeal.appendChild(p);
this.parentElement.append(taskDeal);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.