1

我有:

HTML:

<a href="" class="add-to-cart-button" onClick="javascript:addToCart([@id]);">Add to cart</a>

和 Javascript:

var pid;
function addToCart(id){
pid = id;
}
alert(pid);

它返回“未识别”我如何将值从 addToCart(id) 分配给 pid?谢谢!

4

2 回答 2

3

pid在加载页面时未定义。要显示实际值,您必须将警报放入函数中:

var pid;
function addToCart(id){
    pid = id;
    alert(pid);
}

演示

于 2012-12-15T13:17:10.550 回答
1

您的 JavaScript 在页面加载期间执行到

  1. 声明一个名为的变量pid (仅声明,未定义值)
  2. 声明并定义一个名为addToCart (declare and define, not execute...)的函数
  3. 警告声明的pid变量(尚未定义为任何值)

此外,在页面加载期间,您的标记被解析,并且 JavaScript 引擎定义(但不执行)一个单击处理函数,该函数将addToCart() 在元素被单击时调用。

当单击元素时,addToCart将运行,给出pid定义,这一切都是alert在页面加载期间发生的。

addToCart但是,设置后在您的函数中发出警报pid会向您显示正确的值。

此外,请参阅有关@id.

作为补充说明,javascript:您在属性开头使用的伪协议在该onclick属性中不合适,并且在过去合适的地方(例如在href属性中)已被弃用。您应该删除它并停止使用它。

于 2012-12-15T13:17:52.777 回答