javascript - 如何从 html div 数组中获取特定值
问题描述
我的应用程序调用了一个返回数组的 web api。我将其绑定到 html div。此 div 包含复选框、名称、年龄。
我的要求是获取选定对象的姓名和年龄值。
我想在不使用表格的情况下实现这一点
var parentDiv = document.getElementById('accountsList');
var htmlData = "";
for (var i = 0; i < result.Accounts.length; i++) {
htmlData += '<div class="row" id="accountRow">';
htmlData += '<div class="col-sm-4"> <input type="checkbox" onclick="calculateTotal(this)"><span>Select</span></div>';
htmlData += '<div class="col-sm-4"> Name ' + result.Accounts[i].Name + '</div>';
htmlData += '<div class="col-sm-4"> Age' + result.Accounts[i].Age+ '</div>';
htmlData += '</div><hr>';
}
parentDiv.innerHTML += htmlData;
我的要求是获取选定对象的姓名和年龄值。
解决方案
var parentDiv = document.getElementById('accountsList');
const result = {
Accounts: [
{Name: 'Billy', Age: 10},
{Name: 'Bob', Age: 20},
{Name: 'Joe', Age: 30},
]
}
var htmlData = "";
for (var i = 0; i < result.Accounts.length; i++) {
htmlData += `<div class="row" id="accountRow_${i}" data-name="${result.Accounts[i].Name}" data-age="${result.Accounts[i].Age}">`;
htmlData += '<div class="col-sm-4"> <input type="checkbox" onclick="calculateTotal(this)"><span>Select</span></div>';
htmlData += '<div class="col-sm-4"> Name: ' + result.Accounts[i].Name + '</div>';
htmlData += '<div class="col-sm-4"> Age: ' + result.Accounts[i].Age + '</div>';
htmlData += '</div><hr>';
}
parentDiv.innerHTML += htmlData;
function calculateTotal() {
console.clear();
[...document.querySelectorAll('[type=checkbox]:checked')].forEach(itm => {
let row = itm.closest('.row')
console.log('Name:', row.getAttribute('data-name'), 'Age:', row.getAttribute('data-age'))
})
}
<div id="accountsList"></div>
推荐阅读
- python - 如何在 CoCalc 上上传和导入间隙包
- spring-boot - Thymeleaf 在 Docker 容器中运行时无法解析模板
- cordova - 如何在 Ionic4 中更改指纹弹出窗口的语言?
- javascript - Bot 跟进提示在 IE11 上不起作用
- google-analytics - 过滤结果的总和与 Google Analytics 上的总数不匹配
- reactjs - 如何设置状态
- javascript - 使用导入的 csv 文件中的 java 脚本更改日期格式
- python - 读取文件时出现 oserror 无法加载外部实体
- oracle - 为什么 lpad 在 dbms_output 中给出奇怪的字符串?
- c# - DataTemplate 中的 DataGrid 未更新