简体   繁体   English

我如何在正确的数组中添加元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM