2011-12-17 69 views
0

我嘗試從元素中獲取「name」屬性並使用該字符串調用已存在的變量。javascript/jquery爲什麼採取的字符串不能作爲變量保存?

多數民衆贊成在HTML(李的爲功能的目標):::

<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的字符串名稱,使之動態。

感謝您的時間和智慧

+0

你什麼? messa是一個字符串,而不是一個對象。 – 2011-12-17 21:36:02

回答

1

從字符串在JavaScript中定義的東西切換,儘量

objectTheVarIsDefinedIn[nameOfVariable] 

在這種情況下,我不知道哪個對象/範圍/你使用的功能,我想一般範圍這將是

window[messa].getCursor(); 

或者你使用的功能,而你仍然在同一水平上:

this[messa].getCursor(); 
0

僅僅因爲一些具有相同的名稱沒有名稱不讓它同樣的事情。按照你的邏輯,我可以命名一些文件,這將是文件。

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

這裏並不重要。更像這樣。而不是使用document.body,我會從「文檔」元素中獲取名稱,將其保存在變量「habanot」中,然後調用對象而不是habanot.body。 – Email 2011-12-17 21:26:12

+1

但'messa'是一個字符串。 'getCursor()'不是一個字符串的方法。所以你不能這樣稱呼它。 – mrtsherman 2011-12-17 21:30:50

+0

是的,但不能將字符串轉換爲變量?像一個變量?像eval(「dynamic」+ i +「= val [i]」); – Email 2011-12-17 21:36:31

0

messa在這種情況下是一個字符串。你不能在一個字符串上調用getCursor()。

然而,editor在這種情況下,現在是窗口對象的屬性,所以你可以這樣做:當你鍵入'的typeof messa`或`MESSA === editor`

window[messa].getCursor(); 
相關問題