我使用jQuery map函數來獲取輸入值的數組:如何獲得關聯數組作爲jQuery.map的輸出?
var inputs = $("[id^='field']");
var values = inputs.map(function() {
return $(this).val();
}).get();
我想獲得[ID,值]的關聯數組:
{
id1: value1,
id2: value2
}
我使用jQuery map函數來獲取輸入值的數組:如何獲得關聯數組作爲jQuery.map的輸出?
var inputs = $("[id^='field']");
var values = inputs.map(function() {
return $(this).val();
}).get();
我想獲得[ID,值]的關聯數組:
{
id1: value1,
id2: value2
}
var values = inputs.map(function() {
var obj = {};
obj[ this.id ] = $(this).val();
return obj;
}).get();
如果它們不是select
或radio
輸入,請使用this.value
而不是$(this).val()
。
或者如果您只是想要一個物體,請使用.each
。
var obj = {};
inputs.each(function() {
obj[ this.id ] = $(this).val();
});
如果你確實想對象的數組,如果你輸入時,其name
財產,你也可以使用serializeArray
。
var values = inputs.serializeArray();
.map()
返回一個數組,所以如果你想用的ID值作爲鍵的對象,那麼你可以做這樣的:
function getFieldValues() {
var values = {};
$("[id^='field']").each(function() {
values[this.id] = this.value;
});
return(values);
}
很想知道你爲什麼使用'return(values)'。它使它看起來像一個功能。 – RightSaidFred
返回語法是個人選擇,因爲兩者都是合法的(有或沒有參數)。在某些情況下(當你有更復雜的陳述時,你正在返回),需要正確操作的parens,所以我只是選擇總是使用它們。 – jfriend00
我明白了。我看到的缺點是語法類型可能會混淆初學者。一個常見的混淆之處是'typeof x' vs'typeof(x)'。 – RightSaidFred
這將創建對象的數組。我假設他只想得到一個物體。 –
@FelixKling:我認爲你是對的。我會更新,除非有人打我。 ;) – RightSaidFred
@RightSaidFred:Ya,Felix是對的,我想要一個對象,而不是一個對象數組。 – Homam