JQuery通过传递其名称的文本字符串来选择变量

时间:2011-04-12 19:51:56

标签: jquery

我想使用JQuery选择器通过传递变量名的文本字符串来返回变量:

离。

var test = "xxx";

我想我可以做这样的事情,但它不会起作用:

  alert($("#test"));

编辑:人们感到困惑。将其视为获取var测试内容的反射方式。最好是使用JQuery选择器,但我会采取任何方式来提出它..

7 个答案:

答案 0 :(得分:12)

这对你有用。你必须在字符串引号之外使用这样的变量。如果您想使用样式选择器与ID选择器,则可以用#替换.

var test = "xxx";
alert($("#" + test));

如果字段类似<input name="xxx" .../>,则必须使用以下内容:

var test = "xxx";
alert($("[name=" + test + "]"));

答案 1 :(得分:3)

不确定你的最终目标是什么,但是当我需要一件事与另一件事进行互动时,我会使用以下方法......

<a href='whatever.html' rel='#targetElem' class='loadable'>
<script>
$(document).ready(function(){
  $('.loadable').live('click',function(){  //when a element with the class of loadable is clicked
    $($(this).attr('rel')).load($(this).attr('href')); //load the contents of it's href URL into the element specified in it's rel attribute
    return(false); // stop processing the link;
 });
});

</script>

我告诉元素该动作的目标将使用rel属性...

获取变量试试这个(window是一个javascript内置的全局变量数组......)

var i=2;

var test='i';
document.write('got ' + window[test]);

答案 2 :(得分:2)

您要问的最好是使用JavaScript对象,例如:

var obj = { test: "xxx" };
for(key in obj) {
    alert(key);  // "test"  
    alert(obj.key); // "xxx"  
}

你可以做这样的事情,虽然我真的不明白这一点:

var obj = { foo: "xxx" };
for(key in obj) {
    alert($("#" + key).length); // 1   
}

<input id="foo"/>

http://jsfiddle.net/J4hC8/

答案 3 :(得分:0)

也许你需要的是

alert($("#" + test));

答案 4 :(得分:0)

var test = "#xxx";
alert($(test));

或者,您可以使用:

var test = "xxx";
alert($("#" + test));

答案 5 :(得分:0)

不确定,但也许您正在寻找eval功能。

答案 6 :(得分:0)

我知道这是旧的,但这是解决方案。如igor milla所述,您应该使用eval()。

var test = "xxx";
alert(eval("test"));