javascript / jquery为什么字符串不能作为变量保存?

时间:2011-12-17 21:18:15

标签: javascript jquery codemirror

我尝试从元素中获取“name”属性,并使用该字符串调用已存在的变量。

那就是html(li是函数的目标):::

<ul name="editor">
    <li><a href="#">Politics</a></li>
    <li><a href="#">Finance</a></li>
</ul>

获取名称并在功能“getCursor”上使用它::: 这不起作用,为什么

var messa = $(item).parent().attr("name"); //getting name which is "editor"
start_cursor = messa.getCursor()

atm只有当我“硬编码”这样的变量时它才有效:

start_cursor = editor.getCursor()

“editor”是这样预定义的(Codemirror):

var editor = CodeMirror.fromTextArea(document.getElementById("code"), 
{mode: "javascript"});

我想通过从ul获取字符串名来动态创建它。

感谢您的时间和智慧

3 个答案:

答案 0 :(得分:1)

要从字符串切换到javascript中定义的内容,请尝试

objectTheVarIsDefinedIn[nameOfVariable]

在这种情况下,我不确定你使用的是哪个对象/范围/功能,我想一般的范围是

window[messa].getCursor();

或者你使用了一个函数,但你仍处于同一水平:

this[messa].getCursor();

答案 1 :(得分:0)

只是因为某些东西具有相同的名称而没有名称不会使它成为同一件事。根据你的逻辑,我可以命名一些文件,它就是文件。

var mydoc = "document";
mydoc.location; //won't work because mydoc is just a string, it isn't the document object.

答案 2 :(得分:0)

在这种情况下,

messa是一个字符串。你不能在字符串上调用getCursor()。

但是,在这种情况下editor现在是窗口对象的属性,所以你可以这样做:

window[messa].getCursor();