如何修改JS代码让Alert按选中行逐条输出而非按变量归类?

原代码
function getCheckbox() { var checks = document.getElementsByClassName('checks'); var id_value = ''; var title_value = ''; var type_value = ''; var date_value = ''; var url_value = ''; for (i = 0; i < checks.length; i++) { if (checks[i].checked === true) { var row = checks[i].closest('tr'); id_value += checks[i].value + " "; title_value += row.querySelector('.checks-title').textContent + " "; type_value += row.querySelector('.checks-type h6').textContent + " "; date_value += row.querySelector('.checks-date').textContent + " "; url_value += row.querySelector('.checks-url a').getAttribute('href') + " "; } } var check_result = "ID: " + id_value + "\nTitle: " + title_value + "\nType: " + type_value + "\nDate: " + date_value + "\nURL: " + url_value; alert (check_result); }
问题说明
(示例中选中了三行数据)
期望输出格式:
- ID, Title, Type, Date, URL
- ID, Title, Type, Date, URL
- ID, Title, Type, Date, URL
当前输出格式:
- ID, ID, ID
- Title, Title, Title
- Type, Type, Type
- Date, Date, Date
- URL, URL, URL
修改方案
问题出在你把每个字段的内容单独拼接成了长字符串,要改成每一行数据单独组装成一条完整记录,再把所有记录汇总。
修改后的完整代码
function getCheckbox() { var checks = document.getElementsByClassName('checks'); var results = []; // 用数组存储每行的完整数据 for (i = 0; i < checks.length; i++) { if (checks[i].checked === true) { var row = checks[i].closest('tr'); // 组装当前行的完整数据 var rowData = `${checks[i].value}, ${row.querySelector('.checks-title').textContent}, ${row.querySelector('.checks-type h6').textContent}, ${row.querySelector('.checks-date').textContent}, ${row.querySelector('.checks-url a').getAttribute('href')}`; results.push(rowData); } } // 把数组中的每条记录用换行符连接 var check_result = results.join('\n'); alert(check_result); }
如果需要在开头增加表头,可修改check_result的赋值:
var check_result = "ID, Title, Type, Date, URL\n" + results.join('\n');
内容的提问来源于Stack Exchange,提问作者Button Press
相关产品推荐
相关产品推荐

