javascript - 如何将 .children 方法添加到 if 语句中的 element[i]?
问题描述
我希望所有带有数字的按钮都具有属性data-number
。
我正处于学习阶段。您能否也给我解释的解决方案?
const calculatorFooter = document.querySelector('.calculator-footer');
const calculatorButtons = document.querySelector('.calculator-footer__button');
// add attribute data-number to numbers 1-9
let buttonNumber = calculatorFooter.children;
let buttonAtribute = calculatorButtons;
for (i = 0; i < buttonNumber.length; i++) {
if (buttonNumber[i].innerText.trim() <= 9) {
buttonNumber[i]. ** children ** .setAttribute('data-number', '');
}
}
<div class="calculator-footer">
<div class="calculator-footer__button"><button>7</button></div>
<div class="calculator-footer__button"><button>8</button></div>
<div class="calculator-footer__button"><button>9</button></div>
<div class="calculator-footer__button"><button>/</button></div>
<div class="calculator-footer__button"><button>4</button></div>
<div class="calculator-footer__button"><button>5</button></div>
<div class="calculator-footer__button"><button>6</button></div>
<div class="calculator-footer__button"><button>X</button></div>
<div class="calculator-footer__button"><button>1</button></div>
<div class="calculator-footer__button"><button>2</button></div>
<div class="calculator-footer__button"><button>3</button></div>
<div class="calculator-footer__button"><button>+</button></div>
<div class="calculator-footer__button"><button>0</button></div>
<div class="calculator-footer__button"><button>.</button></div>
<div class="calculator-footer__button"><button>DEL</button></div>
<div class="calculator-footer__button"><button>-</button></div>
<div class="calculator-footer__button"><button>AC</button></div>
<div class="calculator-footer__button"><button>CE</button></div>
</div>
解决方案
您可以从dataset属性访问 HTMLElement 属性
例子:
// HTML: <button data-number="3" />
const button = document.querySelector('#my-button');
button.dataset.number // "3"
所以你的代码将是:
let buttonNumber = calculatorFooter.children;
let buttonAtribute = calculatorButtons;
for (i = 0; i < buttonNumber.length; i++) {
if (buttonNumber[i].innerText.trim() <= 9) {
// if your button have 'data-buttonNumber' attribute
const buttonAttribute = buttonNumber[i].dataset.buttonNumber
buttonNumber[i].setAttribute('data-number', buttonAttribute);
}
}
推荐阅读
- javascript - 为什么 React Hook useState 使用 const 而不是 let
- kotlin - 如何在 kotlin-native 中解析 Json?
- css - iframe 高度问题 - 高度
- angular - TFS 2017 从 Angular 应用程序打开一个工作项
- c# - 如何在 SQLITE c# 中加入
- node.js - 如何确保只有一条路由被 ExpressJS `.route()` 调用
- java - 让方法采用常量参数(Java 编程语言第 4 版练习 2.17 Arnold、Gosling、Holmes)
- node.js - 如何使用 express winston 记录客户端 IP 地址
- ios - Xcode - 无法创建配置文件 - 没有设备
- reactjs - 是否可以声明一个动态接口?