日期:2014-05-16  浏览次数:20557 次

关于jquery处理重复ID的问题
<input type="checkbox" id="bh" value="a">
<input type="checkbox" id="bh" value="b">
<input type="checkbox" id="bh" value="c">
<input type="button" value="btn1" value="取值" onclick="getval();">
<input type="button" value="btn1" value="取值" onclick="putval('aa','bb','cc');">

请问如何用Jquery来获取(getval)这个三控件的值,和分别给这三个控件赋值(putval:参数为要赋的值)?

请教高手getval、putval这两个函数应该怎样写?
------最佳解决方案--------------------
通过属性选择器,而不是id
function getval(){
  var v=$('input[id="bh"]:checked').map(function(){return this.value}).get().join(',');
  alert(v)
}
function putval(){
  var arg=arguments;
  $('input[id="bh"]').each(function(idx,el){
    this.value=arg[idx]
  });
}

------其他解决方案--------------------
如果这个是楼主自己搞出来的, 纯粹是找抽了。 

id本身的定义就是唯一, 你搞得这么乱, 不是自找不快?

此外, checkbox 一般要给定name, 如果你不给定, 则获取困难, 意义也不大——因为它们往往是定义一组数据。此外, 取值, 取什么值, 取所有的?取选中的?

当然, 实在要弄也搞得出来。

<html>
<head>
    <title>测试form</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
        function getval(){
            var arr = [];
            $("#div1 :checkbox").each(function(){
                arr.push(this.value);
            });
            alert("所有checkbox的值分别为:"+arr.join(","));
        }
        
        function putval(va,vb,vc){
            var arr = [va,vb,vc];
            $("#div1 :checkbox").each(function(index){
                if(index>2)
                    return false;
                $(this).val(arr[index]);
            });
        }
    </script>
</head>
<body>
<div id="div1" >
    <input type="checkbox" id="bh" value="a">
    <input type="checkbox" id="bh" value="b">
    <input type="checkbox" id="bh" value="c">
    <input type="button" value="btn1" value="取值" onclick="getval();">