2

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

我有一个 div,我想在我的 jQuery 函数中使用 div 的 id 作为变量。

有一个与 ID 值同名的变量,并且它已经被声明为一个数字.. 此刻我得到 NaN。

我只需要变量 whatIsIt 作为 aqstn 登陆函数 - jsfiddle 有一个带有 id 的警报.. 但它不会转化为代码中的数量.. 如果你知道我的意思.! ?

为了更好地解释,这里有一个 js fiddle 的问题! 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);
});
4

5 回答 5

1

如果你想使用 id 作为变量,你可以使用一个对象

var data = {aqstn : 236};

然后从数据对象中获取值

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

小提琴

于 2013-04-03T00:15:55.933 回答
0

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

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

于 2013-04-03T00:16:56.950 回答
0

如果您var从 before中删除,aqstn它将作为 的属性使用,window并且您可以通过命名参数访问它。window[whatIsIt]

不过,我完全不建议您这样做;我只是提供它作为最后的手段。有线的答案是更正确的答案。

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

于 2013-04-03T00:22:20.897 回答
0

您必须将变量“aqstn”放入诸如窗口(或任何)之类的对象中:

window["aqstn"] = 236;

然后使用 id 作为这个对象的键

whatIsIt = $(this).attr('id');
alert( window[whatIsIt] );

我不知道你的目的是什么,但可能有更聪明的方法可以做到这一点:) 你看过jQuery.data()方法吗?

于 2013-04-03T00:34:27.280 回答
0

因为一旦我添加所有价格,将这个 id 字符串转换为变量似乎不会很整洁,这是另一种方法。它使价格远离 html。

检查 id == 变量名(字符串)是否定义了计算中使用的新变量。这意味着为每个价格定义一个,但是.. :/

if(whatIsIt=='ovrhead'){ var jammin = ovrhead };
if(whatIsIt=='aqstn'){ var jammin = aqstn };

base = (base+(jammin));
于 2013-04-03T19:42:09.640 回答