我想使用JQuery选择器通过传递变量名的文本字符串来返回变量:
离。
var test = "xxx";
我想我可以做这样的事情,但它不会起作用:
alert($("#test"));
编辑:人们感到困惑。将其视为获取var测试内容的反射方式。最好是使用JQuery选择器,但我会采取任何方式来提出它..
答案 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"/>
答案 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"));