我正在尝试使用一个简单的函数将元素的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”数组为空。 似乎这个问题太愚蠢但我无法找到解决方案:(
答案 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)
使用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- *