2013-07-25 66 views
0

对于页面上的每个输入字段,其ID都以“_name”和“_value”结尾,我放置在两个数组中。对于名称数组中的每个输入值(nameArr和valArr都有相同数量的输入),我希望将namrArr的输入作为标题放在输入之前,然后隐藏输入。但是,我似乎无法访问输入的值放入数组后?jQuery - 获取数组中输入的值

var name = $("[id$=_name]"); 
var nameArr = $.makeArray(name); 
var val = $("[id$=_value]"); 
var valArr = $.makeArray(val); 

for(var i = 0; i < valArr.length; i++){ 
    $(nameArr[i]).before("<h3>"+nameArr[i].val()+"</h3>"); 
    $(nameArr[i]).hide(); 
} 
+0

后的HTML或使小提琴 –

回答

1

你可以把它简化,为你的jQuery选择已经返回一个数组:

$("[id$=_name]").each(function (index, item) { 
    $(this).before("<h3>" + $(this).val() + "</h3>"); 
    $(this).hide(); 
}); 
+0

作品魅力,谢谢! – iswinky

+0

没问题。 :) – melancia

1

你不需要把它作为一个数组,它已经是。

for(var i = 0; i < val.length; i++){ 
    $(name[i]).before("<h3>"+$(name[i]).val()+"</h3>"); 
    $(name[i]).hide(); 
} 
+0

啊,没有数组。更好!谢谢!虽然它不允许使用“val()”方法! – iswinky

+0

@ user2071225编辑我的答案 – Geoff

0

使用map() ..

var valuesArray=$("[id$=_name]").map(function(){ 
     return this.value; 
}).get(); 

    var namesArray=$("[id$=_value]"); 


for(var i = 0; i < namesArray.length; i++){ 
    $(namesArray[i]).before("<h3>"+valuesArray[i]+"</h3>"); 
    $(namesArray[i]).hide(); 
}