2012-11-28 85 views
2
<input id="some_id" value="some_value"> 

我需要創建{some_id: some_value}(換句話說,我需要使用id作爲屬性值的名稱)從上面的輸入。如何使用輸入ID的名稱創建對象屬性?

我想:

jQuery('[name="page-numbers[]"]').map(function() { 
    return { jQuery(this).attr('id'): jQuery(this).val()}; 
}).get(); 
jQuery('[name="page-numbers[]"]').map(function() { 
    return {this.id: this.value}; 
}).get(); 

但每次我得到一個錯誤附近{this.id:。如果只調用this.idthis.value或相同的jQuery - 結果返回。

+0

你到底想要返回什麼?我有感覺你想要一個ID值的地圖輸入值({「名稱」:「奉」,「使用」:「膨化」}),而你得到的是一個地圖數組([{「名稱「:」邦「,」使用「:」膨化「])。這真的是你想要的嗎? – ChuckE

回答

3

在你的情況,你應該使用square bracket notation用於定義空對象:

$('[name="page-numbers[]"]').map(function() { 
    var obj = {}; 
    obj[this.id] = this.value; 
    return obj; 
}).get(); 
1

如果你想創建某種「input_id」的:「將input_value」鍵值assoc命令,你用了錯誤的做方法,我會說。試試這個:

var assocs = {}; 
jQuery('[name="page-numbers[]"]').each(function() { 
    assocs[this.id] = this.value; 
}) 

使用.map,你會得到一個包含許多一個鍵/值映射的數組。

+0

是的,你說得對。可能是你可以糾正我的代碼page_numbering:function(){ \t \t \t \t var assocs = {}; 。 \t \t \t \t jQuery的( '[名稱= 「頁號碼[]」]')每個(函數(){ \t \t \t \t \t ASSOCS [this.id] = THIS.VALUE; \t \t \t \t }); \t \t \t \t console.log(assocs); \t \t \t \t return assocs; \t \t \t} – Kin

+0

這究竟是什麼?你能給我介紹一個jsfiddle的例子,所以我們可以用一個實例來測試它嗎? – ChuckE

相關問題