日期:2014-05-19  浏览次数:20772 次

jquery name选择器返回value数组
页面内容是这样的:
<input name="test1" value="a"/>
<input name="test2" value="b"/>
<input name="test3" value="c"/>

要求就是获得 一个数组,里面装着所有test*的值.


我的思路是这样的
我选择用jquery 选择器 选择name以test开头的input
现在是获取了的,但是我想让它直接返回input.value的数组,有好办法么?
下面是我写的,还要从新定义数组,以及for循环,太麻烦了.
            var test = $("input[name^='test']");
            var arr = new Array();
            for(var i=0;i<test.length;i++){
                arr[i] = test[i].value;
            }
PS:我试着 用$("input[name^='test']").val();但是返回的却只是第一个值.

但是我觉得这样很麻烦,不知道有没有更简单的办法呢?
------最佳解决方案--------------------
可以这样写

var arr = new Array();
var test = $("input[name^='test']").each(function(){
   arr.push($(this).val()); 
})

引用:
引用:

楼主的意思是要得到[a,b,c]而不是三个input
引用:

好像跟楼主说的意思大相径庭啊引用:

HTML code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/……

------其他解决方案--------------------

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script language="JavaScript" src="/js/jquery-1.8.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
$('input[name=t]').click(function(){
                             //获取的本来就是数组,你要获取数组的数值就需要遍历
$("input[name*='test']").each(function(){
alert($(this).val());
});
});

});

</script>
</head>
<body>

<input type="button" name="t" value="test">
<br>
<input name="test1" value="a"/>
<input name="test2" value="b"/>
<input name="test3" value="c"/>

</body>
</html>


------其他解决方案--------------------

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>jQuery</title>
    <script language="javascript" type="text/javascript" 
            src="Jscript/jquery-1.4.2.min.js"></script>
    <style type="text/css">
           body{font-size:12px;text-align:left}