jQuery - 动态变量?

时间:2010-05-26 23:58:10

标签: jquery dynamic variables

新手问题。给出以下html。

<div id="mycontainer1" class="container">
<input type="text" class="name"/>
<input type="text" class="age"/>
</div>

<div id="mycontainer2" class="container">
<input type="text" class="name"/>
<input type="text" class="age"/>
</div>

我正在尝试创建一个函数,我可以传递一个元素id和一个包含我想要获取的输入值类的数组。

例如,

var inputClasses = ['name','age'];

getInputValue('.container', inputClasses);


     function getInputValue(elem, arr) {    
            $(elem).each(function() {
                // need a way to map items in array to variables

                // but how do I do this dynamically?
                var nameValue = $(this).find('.name').val();
                var ageValue = $(this).find('.age').val();

            });

2 个答案:

答案 0 :(得分:2)

尝试:

var inputClasses = ['name','age'];

console.log(getInputValues('#mycontainer1', inputClasses));

function getInputValues(elem, arr) {
  return $(elem).find("." + arr.join(",.")).map(function(val) {
    return $(this).val();
  }).get();
}

答案 1 :(得分:1)

试试这个:

var inputClasses = ['name','age'];
var inputValues = getInputValue('#myContainer1', inputClasses);

 function getInputValue(elem, arr) {
     var out = [];

            for(i=0; i <= arr.length; i++) {
                var out[arr[i]] = $(elem+' .'+arr[i]).val();
            };

     return out;
}

现在你应该有一个数组inputValues,它包含每个输入字段的值,类名作为索引键。

例如,您可以读出“name”值,如下所示:

alert('Your name: '+inputValues['name']);