2010-08-16 34 views
1
var selValues = {}; 
selValues['234'] = $('#asd').val(); 
selValues['343'] = function() { var el = ''; $('#asd input[@type=checkbox]:checked').each(function() { el += $(this).val() + '|'; }); return el; } }; 

這裏的解釋:如何委託這在JavaScript?

即時創建一個鍵值數組,其中從DOM對象提取不同的值。您在示例中看到的最後一個數組實際上會嘗試提取複選框列表中的選中項。我試圖委託循環並返回所有檢查值的分隔字符串,但它不起作用。

+4

你是什麼意思? – kennytm 2010-08-16 07:23:03

+0

我嘗試使用函數()放置值,但它不工作。 – 2010-08-16 07:23:37

+0

你真的(編輯:真的,真的,真的)應該解釋,「正是」你試圖達到你的問題。 – Strelok 2010-08-16 07:24:29

回答

1

一個mapping可能是一個更好的解決方案在這裏:

var el = $('#asd input:checkbox:checked').map(function(){ 
    return $(this).val(); 
}).get().join('|'); 
+0

如果這相當於他們正在嘗試做的事情,我更喜歡這種方法:) – theIV 2010-08-16 07:36:29

+0

有一些語法錯誤,它工作。謝啦! – 2010-08-16 07:55:10

+0

@Martin:歡迎,但是語法錯誤是什麼? – jAndy 2010-08-16 08:09:23

0

如果我正確理解你的問題,你對跑起來的問題是,你只是存儲selValues['343']的功能,而不是評估其。

你可以試試selValues['343'] = function() { var el = ''; $('#asd input[@type=checkbox]:checked').each(function() { el += $(this).val() + '|'; }); return el; } }();(注意最後的圓括號),它應該評估你的函數並將結果存儲在selValues['343']

0

似乎爲我工作:http://jsfiddle.net/HM4zD/

+0

很酷的鏈接。如果你做了一個警報(JSON.stringify(selValues)),結果說話,否則。 – 2010-08-16 07:44:00