将html属性推送到数组onClick

时间:2013-10-30 21:46:31

标签: javascript arrays push

我正在尝试使用一个简单的函数将元素的number属性推送到数组onclick,但是数组只包含用逗号分隔的空值。 这是html代码。

<button type="button" class="btn btn-success btn-lg" number="12" onclick="basket.push(this.number)">toBakset</button>

<button type="button" class="btn btn-success btn-lg" number="15" onclick="basket.push(this.number)">toBakset</button>

<button type="button" class="btn btn-success btn-lg" number="18" onclick="basket.push(this.number)">toBakset</button>

从一开始“basket”数组为空。 似乎这个问题太愚蠢但我无法找到解决方案:(

3 个答案:

答案 0 :(得分:5)

number不是button element的有效属性。要检索它,您必须使用API​​中的其他功能

onclick="basket.push(this.getAttribute('number'))"

更好的是,将number标识存储在data-标记内,如下所示:

<button data-number="5" ...

这样它符合标准。然后你会用

onclick="basket.push(this.getAttribute('data-number'))"

检索它。

答案 1 :(得分:0)

这是因为数字不是标准属性,所以this.number不是任何东西。你必须以另一种方式做到这一点,例如给每个按钮一个id并保留一个数组,其中包含哪些id有哪些数字

答案 2 :(得分:0)

  • 按钮 type =“button”
  • 号码属性?

使用data-*属性!

<强> LIVE DEMO

<button onclick="basketPush(this)" data-number="12" class="btn btn-success btn-lg">toBakset</button>

var basket = [];

function basketPush( that ){
  basket.push( that.dataset.number );
}

DOCS: https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#data- *