如何将每次点击而不是每个变量的警报输出到行中

问题描述 投票:0回答:1

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、标题、类型、日期、URL

  • ID、标题、类型、日期、URL

  • ID、标题、类型、日期、URL

我现在有:(参考截图)

  • 身份证,身份证,身份证

  • 标题,标题,标题

  • 类型,类型,类型

  • 日期,日期,日期

  • 网址,网址,网址

我应该在我的 var check_result 中更改什么以获得我需要的东西?

javascript function for-loop alert
1个回答
0
投票

与其将每张支票按类型添加到变量中,不如创建一个数组,将每一行保存为一个字符串 (

rows
)。然后,将该行的每一列附加到一个临时字符串 (
str
) 中,然后将该字符串作为新元素推送到
rows
数组中。

然后,要打印你的行,首先,创建一个标题行,然后在你的数组上使用

.join('\n')
通过换行符连接每个元素(这是行字符串),从而将每一行放在一个新行中。

就像这样:

function getCheckbox() {
  var checks = document.getElementsByClassName('checks');
  var rows = [];
  for (i = 0; i < checks.length; i++) {
    if (checks[i].checked === true) {
      var str = "";
      var row = checks[i].closest('tr');
      str += checks[i].value + " ";
      str += row.querySelector('.checks-title').textContent + " ";
      str += row.querySelector('.checks-type h6').textContent + " ";
      str += row.querySelector('.checks-date').textContent + " ";
      str += row.querySelector('.checks-url a').getAttribute('href') + " ";
      rows.push(str);
    }
  }

  var header = "ID, Title, Type, Date, URL\n";
  alert(header + rows.join('\n'));
}
© www.soinside.com 2019 - 2024. All rights reserved.