新手问题。给出以下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();
});
答案 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']);