2010-08-16 3 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

+0

Я попытался использовать функцию() при размещении значений, но не работает. –

+0

Вы действительно (EDIT: действительно, действительно, действительно) должны объяснить «точно», что вы пытаетесь достичь в своем вопросе. – Strelok

ответ

1

mapping, вероятно, является лучшим решением здесь:

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

Если это эквивалент того, что они пытаются сделать, мне нравится этот подход лучше :) – theIV

+0

имел несколько синтаксических ошибок, он работал. Спасибо чувак! –

+0

@Martin: приветствуем, но каковы синтаксические ошибки? – jAndy

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

прохладный link. если вы выполняете предупреждение (JSON.stringify (selValues)), в результате вы можете говорить иначе. –

Смежные вопросы