我不确定我是否会很好地描述这一点......但是:
我有一个div,我想在我的jQuery函数中使用div的id作为变量。
有一个与ID值同名的变量,它已经被声明为数字..我得到NaN的那一刻。
我只需要变量whatIsIt在函数中作为aqstn登陆 - jsfiddle有一个带有id的警报..但它不会转换为代码中的数字..如果你知道我是什么意思!?
为了更好地解释,这里有一个问题的小提琴! http://jsfiddle.net/CpFqk/
jQuery的:
$('.add').click(function() {
whatIsIt = $(this).attr('id');
alert (whatIsIt);
base = (base+whatIsIt);
// base = (base+aqstn); --> This works OK
// Some maths to get +- 15%
fifteen = (base*.15)
price1 = (base+fifteen)
price2 = (base-fifteen)
$(".price span.more").html(price1);
$(".price span.less").html(price2);
});
答案 0 :(得分:1)
如果要将id用作变量
,则可以使用对象var data = {aqstn : 236};
然后从数据对象中获取值
whatIsIt = data[$(this).attr('id')]; // or data[this.id]
答案 1 :(得分:0)
您无法以这种方式在HTML和Javascript之间共享变量。相反,您需要使用rel
属性来保存&指定整数值,如下所示:
答案 2 :(得分:0)
如果您从var
之前删除aqstn
,它将作为window
的属性提供,您可以通过命名参数访问它。 window[whatIsIt]
我不建议你这样做;我只是提供它作为最后的手段。 wirey的答案是更正确的答案。
答案 3 :(得分:0)
您必须将变量“aqstn”放入窗口(或任何)对象中:
window["aqstn"] = 236;
然后使用id作为此对象的键
whatIsIt = $(this).attr('id');
alert( window[whatIsIt] );
我不知道你的目的是什么,但可能有更明智的方法:)你看过jQuery.data()方法了吗?
答案 4 :(得分:0)
因为将这个id字符串转换为变量似乎并不是一旦我添加所有价格就会非常整洁,这是另一种方法。它使价格保持在html之外。
检查id ==变量名称(字符串) - 是否确实定义了计算中使用的新变量。它意味着为每个价格定义一个但是......:/
if(whatIsIt=='ovrhead'){ var jammin = ovrhead };
if(whatIsIt=='aqstn'){ var jammin = aqstn };
base = (base+(jammin));