2014-01-20 12 views
0

我目前正在嘗試編寫一個程序,其中包含每個點擊動態div。 繼承人蔘考小提琴:http://jsfiddle.net/aaronyolungz/P8x3z/7/最佳編程方式:開關或對象方向?

每格都會有,我想單獨調用4個參數:姓名,家鄉,專業,經驗(都是字符串)

至於現在我有一個函數包含所有4個變量,這些變量基於函數輸入而變化,但我希望能夠在我稱之爲名稱,主要或家鄉時返回。我的整體問題是,如果我保留我的代碼並按以下方式調用變量:

UserStatement(user).User.name

或者我應該去這樣的事情:

function user_name(user){return name;} 
function user_major(user){return major;} 

編輯:固定小提琴鏈接

+1

爲什麼不直接使用數組,像這樣:http://jsfiddle.net/rooseve/P8x3z/8/ – Andrew

+0

JavaScript是一種非常靈活的語言它與Java等其他語言不同。 –

+0

唯一的原因是因爲我要將id的名稱切換到它所屬的人的名字。 – AaronYoLungz

回答

1

你有什麼是檢索模型(UserStatement(userNumber))的功能,我沒有看到呼叫者使用諸如UserStatement(userNumber).name之類的問題。

至於switch語句,它可以被替換爲數組或對象中的查找。

而且,由於接入模式必須是動態的,你可以使用的元素的屬性來告訴你什麼屬性來訪問:

<ul id="testimonials" data-property='name'> 
    ... 

,並獲得這樣的:

var userNumber = $(this).attr('id'); 
var property = $(this).parent().data('property'); 
added_div = '<div class="testimonial_expanded">' + 
    UserStatement(userNumber)[property] + '</div>'; 

小提琴here

+0

所以我可以通過調用'function.localVar'來檢索局部變量? 對不起,如果這是明顯的和重複的,我只是想仔細檢查,並確保我知道這是如何工作的。 – AaronYoLungz

+0

不,您將訪問您從該函數返回的對象。它不是局部變量,而是返回值。 –

+0

所以,當你說'UserStatement(userNumber).name'會工作,這怎麼可能在代碼中實現? – AaronYoLungz

1

我想你應該把name, major, hometown作爲屬性值li內,如

<li data-name="1" data-major="xx" data-hometown="" ></li> 

因此,你可以通過$.data得到這些值,而不是將數據在JavaScript。

參考jQuery的數據api doc

UserStatement(userName).name

+0

如果我要實現這個目標,我會在尋找家鄉時使用$ .data-hometown嗎? – AaronYoLungz

+0

我相信它應該是$(element).data('hometown')。檢查我剛剛在答案中添加的api文檔 – fengd