如题,该如何让获取呢,网上有很多这样的列子,但是大多数是不行的,我想获取的是   和  文本
我写的方法如下,但是获得是 “undefined”,求大侠给个更好的方法!<script language="javascript" type="text/javascript">
    function checkAll()
    {
        var ckelems = document.getElementById("CheckBoxList1").getElementsByTagName("input");
        var spelems = document.getElementById("CheckBoxList1").getElementsByTagName("span");
        for(var i=0;i<ckelems.length;i++)
        {
            if(ckelems[i].type=="checkbox")
            {
                if(ckelems[i].checked)
                    alert('文本是 '+spelems[i].text+' 值是 '+spelems[i].value);   
            }
        } 
    }
    </script>

解决方案 »

  1.   

     alert('文本是 '+spelems[i].innerHTML+' 值是 '+ckelems[i].value);   
      

  2.   

     我记得checkboxlist 里面不是span 是lable吧?
      

  3.   

    本帖最后由 net_lover 于 2010-12-14 15:51:39 编辑
      

  4.   

    checkboxlist 的value值是on,代表选中。这个要注意
      

  5.   

    在HTML中查看源代码的时候控件是找不到那个VALUE的
      

  6.   

    function GetCheckBoxListValue(objID)
    {
        var v = new Array();
        var CheckBoxList = document.getElementById(objID);
        if(CheckBoxList.tagName == "TABLE")
        {
            for(i=0;i<CheckBoxList.rows.length;i++)    
                for(j=0;j<CheckBoxList.rows[i].cells.length;j++)
       if(CheckBoxList.rows[i].cells[j].childNodes[0])
                        if(CheckBoxList.rows[i].cells[j].childNodes[0].checked==true)
                            v.push(CheckBoxList.rows[i].cells[j].childNodes[1].innerText);
        }
        if(CheckBoxList.tagName == "SPAN")
        {
            for(i=0;i<CheckBoxList.childNodes.length;i++)
                if(CheckBoxList.childNodes[i].tagName == "INPUT")
                    if(CheckBoxList.childNodes[i].checked==true)
                    {
                        i++;
                        v.push(CheckBoxList.childNodes[i].innerText);
                    }            
        }
        return v;
    }
      

  7.   

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!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 runat="server">
        <title>无标题页</title>
        <script >
            function checkAll()
            {
                var objs = document.getElementsByTagName ("input");
                for(var i = 0; i < objs.length; i++)
                {
                    if(objs[i].type == "checkbox")
                    {
                        objs[i].checked = "checked";
                    }
                }
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:CheckBoxList ID="Checkboxlist1" runat="server">
                <asp:ListItem>1</asp:ListItem>
                <asp:ListItem>2</asp:ListItem>
                <asp:ListItem>3</asp:ListItem>
            </asp:CheckBoxList>
        </div>
        <input type ="button" value="test" onclick="checkAll();"/>
        </form>
    </body>
    </html>
      

  8.   

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><!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 runat="server">
        <title>无标题页</title>
        <script >
            function checkAll()
            {
                var objs = document.getElementsByTagName ("input");
                for(var i = 0; i < objs.length; i++)
                {
                    if(objs[i].type == "checkbox" && objs[i].checked)
                    {
                       alert ( objs[i].parentElement.children[1].innerText)
                    }
                }
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:CheckBoxList ID="Checkboxlist1" runat="server">
                <asp:ListItem Selected="True">1</asp:ListItem>
                <asp:ListItem Selected="True">2</asp:ListItem>
                <asp:ListItem>3</asp:ListItem>
            </asp:CheckBoxList>
        </div>
        <input type ="button" value="test" onclick="checkAll();"/>
        </form>
    </body>
    </html>
      

  9.   

    var spelems = document.getElementById("CheckBoxList1").getElementsByTagName("span");
    这句应该改为var spelems = document.getElementById("CheckBoxList1").getElementsByTagName("label"); alert('文本是 '+spelems[i].text+' 值是 '+spelems[i].value); 
    应改为  alert('文本是 '+spelems[i].innerText+' 值是 '); 
    asp.net2.0里,value值只能从后台传出来,在前台没有这个值。js是只能处理前台有的东西。
    如果不用checkboxlist控件,而是html表单,则value值就有了。
      

  10.   

    将document.getElementById("CheckBoxList1") 
    改为 document.getElementById("<%CheckBoxList1.ClientID%>")