1

我有几张带有“红色”类的图像。

当用户点击其中任何一个时,ID 为“red”的表单字段应递增。

我正在尝试以一种易于重复使用的方式编写此代码。

我不知道是否有一种方法可以在不使用全局变量的情况下增加表单字段值。只需编写 $(#red).val(++); 不做任何事情。

如果我首先声明一个全局变量,例如

var redAmount;
$(#red).val(redAmount++);

它有效,但我不喜欢每次将其重新用于其他颜色时都必须输入颜色+数量的想法。

这让我尝试动态地形成变量名

var redAmount;
var currentColor = $(obj).attr("class"); //getting the class of the clicked element
$('#' + currentColor).val(currentColor+'Amount'++); //trying to form the variable name dynamically but failing

抱歉,解释太长了。我想问的是:

  1. 我可以在没有全局变量的情况下增加表单值吗
  2. 如果不是,如何根据单击元素的类动态形成变量名
4

2 回答 2

1

您可以使用普通 JavaScript 中的增量运算符来执行此操作:

document.getElementById("red").value++;

jsFiddle

于 2012-07-23T01:28:03.150 回答
0

使用测试样本修改了代码。

http://jsfiddle.net/webwarrior/CrjY9/25/

你不是想增加你点击的项目的价值吗?

jQuery("img").click(function () {
    jQuery("#" + jQuery(this).attr("class"))[0].value++;
});

希望这可以帮助。

这是真正的 JQuery 方式,但我猜 JavaScript value++ 方式在某些浏览器中也一样好。

于 2012-07-23T01:41:31.197 回答