2014-02-11 225 views
0

我有一個叫做用戶的對象叫做流的全局對象。用戶的每個屬性都是具有數組值的用戶名,該數組用於存儲其他對象以及有關每個用戶的信息。該項目應該是twitter的一個小版本。例如:無法訪問javascript屬性

var users = {}; 
users.bill = [] 
users.keith = []; 

var someInfo = {}; 
someInfo.tweet = "Hello, I am a message"; 
someInfo.dateCreated = new Date(); 

users.keith.push(someInfo); 

以上是在包含在我的index.html文件中的單獨的.js文件中。我的index.html文件也有一個腳本部分,這是我的問題所在。我試圖做的是從tweet屬性中檢索字符串,當用戶名被點擊時,使用jQuery。這是我正在嘗試的。

var showTimeline = function(){ 
    var tweeter = $(this).text(); // get username from whichever name is clicked on 
    console.log(tweeter);   // log name to console. e.g tweeter holds "keith" 
    console.log(streams.users["keith"][0].message); // this works fine and extracts string as expected 
    console.log(streams.users[tweeter][0].message); // program breaks here and says "tweeter is undefined", right after i logged it to the console and showed it holds the string "keith" 

}; 

jsfiddle

+0

告訴我一個小提琴,但也許在'''用戶'''你實際上並沒有把'''高音喇叭'' – turnt

+0

嗯......似乎很奇怪......到目前爲止我看起來就對.. – VIDesignz

+2

嘗試: 'var tweeter = $ .trim($(this).text());' –

回答

2

有一些不可見字符(S)導致的問題:

console.log(tweeter == 'douglascalhoun'); //false 

這解決了它:

var tweeter = $.trim($(this).text()); 

http://jsfiddle.net/26gwz/

+1

或更優雅的'$(this).text()。trim()' –

+2

@MichaRadonov如果你不需要支持IE8或更低版本,或者你想爲這些瀏覽器創建一個墊片,yes 。 –

+0

是的,抱歉,趕緊發表評論 –