我有一个页面,其中有许多来自PHP输出的按钮,每个按钮都有不同的值:
reload
我想点击它时检查按钮的值,所以我使用下面的原生JS:
<button class='add' value=".$row['cat_no']." onClick='addItem(value)'>Add To Cart</button>
$row['cat_no'] is data from mysql.
它不起作用......它只是返回<script>
function addItem(value) {
alert("this.value");}
</script>
在这种情况下,我认为将{1}分配给ID是不合适的,请帮助检查我的错误或建议解决方案。感谢。
请:我不想使用JQUERY,只需原生JS。
答案 0 :(得分:4)
如下所示使用alert(elmt.value);
。你应该将this
传递给函数
<button class='add' value="test value" onClick='addItem(this)'>Add To Cart</button>
<script>
function addItem(elmt) {
alert(elmt.value);
}
</script>
&#13;
答案 1 :(得分:3)
下面的代码可以帮助您检索触发事件的元素的值:
<button class='add' value="test value" onClick='addItem(this)'>Add To Cart</button>
<script>
function addItem(sender) {
alert(sender.value);
}
</script>
然而,这充满了code smells.
我建议你做以下代码
<button id='add-to-cart' class='add' value="test value">Add To Cart</button>
在单独的JS文件中:
(function() {
function _onLoad() {
var addToCartButton = document.getElementById("add-to-cart");
addToCartButton.addEventListener("click", _onAddToCartClicked);
}
function _onAddToCartClicked() {
var sender = this;
alert(sender.value);
}
document.addEventListener("DOMContentLoaded", _onLoad, false);
})();
这种方法确保:
答案 2 :(得分:0)
您的功能中并不需要this
,只需使用value
即可。并且还删除双引号,因为你需要提醒函数的参数,而不是字符串,如下所示:
function addItem(value) {
alert(value);
}
以下是工作示例:
function addItem(value) {
alert(value);
}
&#13;
<button class='add' value="yourValue" onClick='addItem(value)'>Add To Cart</button>
&#13;
或者您可以使用this
将元素传递给函数,然后从addItem
方法获取所需的属性值:
function addItem(item) {
alert(item.value);
}
&#13;
<button class='add' value="yourValue" onClick='addItem(this)'>Add To Cart</button>
&#13;