关于html:我如何使用jQuery将id用作变量

how do i use an id as a variable using jQuery

本问题已经有最佳答案,请猛点这里访问。

我不确定我是否能很好地描述这件事…但是:

我有一个DIV,我想在jquery函数中使用DIV的ID作为变量。

有一个与ID值同名的变量,它已声明为数字。现在我得到了楠。

我只需要变量whatisit作为aqstn降落在函数中-jfiddle有一个ID为的警报。但它不能转化为代码中的数字。如果你知道我的意思。!?

为了更好的解释,这里有一个JS的问题!http://jsfidle.net/cpfqk/

jquery:查询:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$('.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);
});


如果要将ID用作变量,则可以改用对象

1
var data = {aqstn : 236};

然后从数据对象中获取值

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

小提琴


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

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

1
2
3
4
if(whatIsIt=='ovrhead'){ var jammin = ovrhead };
if(whatIsIt=='aqstn'){ var jammin = aqstn };

base = (base+(jammin));


您必须将变量"aqstn"放入诸如window(或any)之类的对象中:

1
window["aqstn"] = 236;

然后将ID用作此对象的键

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

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


如果从aqstn之前删除var,它将作为window的属性提供,并且可以通过命名参数访问它。江户十一〔四〕号

不过,我不建议你这么做,我只是提供了最后的手段。威利的回答更正确。

http://jsfidle.net/cpfqk/1/


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

http://jsfiddle.net/qwfck/1/