我如何使用jQuery将id用作变量

时间:2013-04-03 00:09:52

标签: jquery html variables

我不确定我是否会很好地描述这一点......但是:

我有一个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);
});

5 个答案:

答案 0 :(得分:1)

如果要将id用作变量

,则可以使用对象
var data = {aqstn : 236};

然后从数据对象中获取值

whatIsIt = data[$(this).attr('id')]; // or data[this.id]

FIDDLE

答案 1 :(得分:0)

您无法以这种方式在HTML和Javascript之间共享变量。相反,您需要使用rel属性来保存&指定整数值,如下所示:

http://jsfiddle.net/qwFCk/1/

答案 2 :(得分:0)

如果您从var之前删除aqstn,它将作为window的属性提供,您可以通过命名参数访问它。 window[whatIsIt]

我不建议你这样做;我只是提供它作为最后的手段。 wirey的答案是更正确的答案。

http://jsfiddle.net/CpFqk/1/

答案 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));