如何从html发送数据到js

时间:2019-07-04 09:08:59

标签: javascript html

我试图将data-=""的数据发送到JavaScript,所以我在HTML中使用了data- =这样的

const detailInput = document.getElementsByClassName('avg');
const d = 0,
  c = 0,
  b = 0,
  a = 0;

for (let input of detailInput) {
  d = input.datasets.pentingd
  c = input.datasets.pentingc
  b = input.datasets.pentingb
  a = input.datasets.pentinga
}
<input type="hidden" class="avg" data-avgpentingd="<?php $avgPuas ?>">

,但这不是因为它说undefined is not an object。请问有什么解决办法

2 个答案:

答案 0 :(得分:0)

您应该在javascript中尝试以下方法:

const detailInput = document.getElementsByClassName('avg');

let pentings = array();

for (let input in detailInput) {
  pentings.push(input.dataset.penting);
}

console.table(pentings);

在您的HTML中执行以下操作:

<input type="hidden" class="avg" data-penting="<?php $avgPuas ?>">

您还可以在此处添加多个input标记

答案 1 :(得分:0)

  • 使用let而非const来分配变量,否则它是无法更改的常量。
  • 它是dataset,而不是数据集
  • 您的名字是 avgpentingd ,但错过了更改 pentingd
  • 也许使用英文单词pending代替 penting
  • 在浏览器中打开控制台,然后按照错误进行操作。在Firefox或Chrome浏览器中,单击右上角的菜单,然后选择用于开发人员和Web控制台的工具。如果您没有其他调试器,这是必须的。

在对代码进行更正和最小更改之后,它看起来像这样并且可以正常工作:

const detailInput = document.getElementsByClassName('avg');
let d = 0,
  c = 0,
  b = 0,
  a = 0;

for (let input of detailInput) {
  d = input.dataset.avgpentingd
  c = input.dataset.avgpentingc
  b = input.dataset.avgpentingb
  a = input.dataset.avgpentinga
}

console.log(d);
<input type="hidden" class="avg" data-avgpentingd="It works now">

了解数据集here