0

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

这就是 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()

“编辑器”是这样预定义的(Codemirror):

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

我想通过从 ul 获取字符串名称来动态实现它。

感谢您的时间和智慧

4

3 回答 3

1

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

objectTheVarIsDefinedIn[nameOfVariable]

在这种情况下,我不确定您使用的是哪个对象/范围/函数,我猜一般范围是

window[messa].getCursor();

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

this[messa].getCursor();
于 2011-12-17T21:27:59.103 回答
0

仅仅因为某些东西具有相同的名称,没有名称并不能使它成为相同的东西。按照你的逻辑,我可以命名一些文件,它就是文件。

var mydoc = "document";
mydoc.location; //won't work because mydoc is just a string, it isn't the document object.
于 2011-12-17T21:22:29.810 回答
0

messa在这种情况下是一个字符串。您不能在字符串上调用 getCursor()。

但是,editor在这种情况下,现在是 window 对象的属性,因此您可以这样做:

window[messa].getCursor();
于 2011-12-17T21:30:10.680 回答