首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Javascript中将节点列表值合并为一个数组?

如何在Javascript中将节点列表值合并为一个数组?
EN

Stack Overflow用户
提问于 2019-05-23 19:12:06
回答 1查看 68关注 0票数 2

在将节点值列表合并到一个数组中时,我遇到了一个问题。我希望有一个值数组,并在单击按钮时更新它。

我使用了forEach方法,然后在嵌套了Array.from()方法的地方使用了function。我得到了几个数组,其数量取决于我有多少个节点。

html代码:

代码语言:javascript
运行
复制
<li>
  <button class="add">+</button>
  <span class="amount" id = "amount0">0</span>
  <button class="substract">-</button>
</li>
<li>
  <button class="add">+</button>
  <span class="amount" id = "amount1">0</span>
  <button class="substract">-</button>
</li>

以此类推。

JS代码:

代码语言:javascript
运行
复制
function addAmount(el) {
  let amountElement, adjustAmount;

  if (el.classList.contains("add")) {
    adjustAmount = 1;
    amountElement = el.nextElementSibling;
  } else {
    adjustAmount = -1;
    amountElement = el.previousElementSibling;
  }

  if (amountElement.innerText >= 0) {
    amountElement.innerText =
      parseInt(amountElement.innerText) + adjustAmount;
  } else {
    amountElement.innerText = 0;
  }
}

function ordered() {
    const amount = document.querySelectorAll(".amount");
    amount.forEach(function(order) {
      let myArrays = Array.from(order.innerText);
      console.table(newArrays);
      console.log(order);
    });
  }
document.addEventListener("click", ordered);
document.addEventListener('click', e => {
  if (e.target.tagName == "BUTTON") {
    addAmount(e.target);
  } else {
    console.log(e.target.tagName);
  }
});

此代码在控制台中返回两个节点

代码语言:javascript
运行
复制
<span class="amount" id = "amount">0</span>

和两个数组:

代码语言:javascript
运行
复制
["0"]

哪个更新了。但是,如果number of value大于10,则数组开始将十进制数和单位数分成数组中的两个项目,例如:

代码语言:javascript
运行
复制
["1","0"]

但我想要一件"10“。节点的值正在正确更新。

代码语言:javascript
运行
复制
function addAmount(el) {
  let amountElement, adjustAmount;

  if (el.classList.contains("add")) {
    adjustAmount = 1;
    amountElement = el.nextElementSibling;
  } else {
    adjustAmount = -1;
    amountElement = el.previousElementSibling;
  }

  if (amountElement.innerText >= 0) {
    amountElement.innerText =
      parseInt(amountElement.innerText) + adjustAmount;
  } else {
    amountElement.innerText = 0;
  }
}

function ordered() {
    const amount = document.querySelectorAll(".amount");
    amount.forEach(function(order) {
      let myArray = Array.from(order.innerText);
      console.log(myArray);
      console.log(order);
    });
  }
document.addEventListener("click", ordered);
document.addEventListener('click', e => {
  if (e.target.tagName == "BUTTON") {
    addAmount(e.target);
  } else {
    console.log(e.target.tagName);
  }
});
代码语言:javascript
运行
复制
<li>
  <button class="add">+</button>
  <span class="amount" id = "amount0">0</span>
  <button class="substract">-</button>
</li>
<li>
  <button class="add">+</button>
  <span class="amount" id = "amount0">0</span>
  <button class="substract">-</button>
</li>

EN

Stack Overflow用户

发布于 2019-05-23 19:24:15

只需将数组中的值推入并连接它们即可。试着这样做

代码语言:javascript
运行
复制
function addAmount(el) {
  let amountElement, adjustAmount;

  if (el.classList.contains("add")) {
    adjustAmount = 1;
    amountElement = el.nextElementSibling;
  } else {
    adjustAmount = -1;
    amountElement = el.previousElementSibling;
  }

  if (amountElement.innerText >= 0) {
    amountElement.innerText =
      parseInt(amountElement.innerText) + adjustAmount;
  } else {
    amountElement.innerText = 0;
  }
}

function ordered() {
    const amount = document.querySelectorAll(".amount");
    var unit = [];
    amount.forEach(function(order) {
      let myArrays = Array.from(order.innerText);
      unit.push(myArrays);
      console.log(order);
    });
    console.log(unit.join(''));
  }

document.addEventListener('click', e => {
  if (e.target.tagName == "BUTTON") {
    addAmount(e.target);
  } else {
    console.log(e.target.tagName);
  }
});
document.addEventListener("click", ordered);
代码语言:javascript
运行
复制
<li>
  <button class="add">+</button>
  <span class="amount" id = "amount0">0</span>
  <button class="substract">-</button>
</li>
<li>
  <button class="add">+</button>
  <span class="amount" id = "amount1">0</span>
  <button class="substract">-</button>
</li>

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56273965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档