js里怎么取到DataList中控件的值,如DataList中有一个Label1,要取Label1的值。怎么做好些?

解决方案 »

  1.   

    为Label定义一个ID不就能取到了....用行号来区分多个Label
      

  2.   

    先给DataList一个ID。再用FireBug看看DataList生成的界面Dom元素结构。一般是一个带ID的TABLE。然后使用Js取通过document.getElementById()得到DataList生成的Table元素。然后,一个个childNode地分析。
      

  3.   

    将 ID 用 变量记住,然后输出到页面赋值给 js 变量然后 document.getElementById(js变量)
      

  4.   

    jquery中的selector功能很强大。
      

  5.   

    document.getElementById("<%=DateLis1.ClientID%>").getElementsByTagName("input")[0].valuevar gv = document.getElementById("<%= DateLis1.ClientID %>");
    var txt= gv.getElementsByTagName("input");
    for(var i=0;i<txt.length;i++)
    {
    }
      

  6.   

    为Label定义一个ID,用$("#ID").val()
      

  7.   

    label 生成的是 span 用 getElementsByTagName("input") 获取 ,能取到就神奇了
      

  8.   

     <table id="DataList3" cellspacing="0" border="0" style="width:960px;border-collapse:collapse;">
    <tr>
    <td>
    <div class="bbs_xiangxi1_two">
    <div class="bbs_xiangxi1_left"> <div class="bbs_xiangxi1_left1">
    <a title='gaoxing'>
    <span id="DataList3_ctl00_lblName">gaoxing</span>
    我要取的就是span下的:
    "DataList3_ctl00_lblName"这个。我用的是:gv.getElementsByTagName("span");
      

  9.   

    楼主
    你可以定义一个变量
    var str=document.getElementById("控件id");
    alert(str);然后看看你的document.getElementById取得的是什么值
      

  10.   

    获取一个Label控件的 Text 值,用循环合适么?
      

  11.   

    这个问题已经解决了,但,我做像CSDN这种“引用”时,内容多些就不显示了。有什么更好的方法吗?
      

  12.   

    先给DataList一个ID。再用FireBug看看DataList生成的界面Dom元素结构。一般是一个带ID的TABLE。然后使用Js取通过document.getElementById()得到DataList生成的Table元素。然后,一个个childNode地分析。
      

  13.   

    谢谢,这个已经可以了,现在,的问题是像CSDN这种“引用”做法,我那里内容多些就不显示了。
      

  14.   

    [Quote=引用 12 楼 shenlinsheng 的回复:]
    引用 11 楼 no1bigtooth 的回复:
    楼主
    你可以定义一个变量
    var str=document.getElementById("控件id");
    alert(str);然后看看你的document.getElementById取得的是什么值这个sdadsadasdasd
      

  15.   

    js全部显示DataList中的数据:
            function test() {
                var dl = document.getElementById("DataList1").children[0];
                var n1 = dl.rows.length; //行数即记录数
                var n2 = dl.rows[0].getElementsByTagName("SPAN").length;//一行中的字段数
                for (var i = 0; i < n1; i++) {
                    var s = "";
                    for (var j = 0; j < n2; j++) {
                        s += dl.rows[i].getElementsByTagName("SPAN").item(j).innerHTML + ",";
                    }
                    alert(s);
                }
            }
      

  16.   

    有一个思路不知道对不对
    先为DataList定义一个ID和为label定义一个ID
    因为DataList生成的每一行的对应的label 的ID会变为(DataList3的ID)+_ctl00_+(label的ID)
    只要想办法可以把“_ctl00_”取出来,就可以用document.getElementById()取出值了。刚刚学JS。请高手继续!!!
      

  17.   

    是不是用了模板页?datalist里的控件加ID也没用 因为循环会出来很多这个的ID.你还是取生成的那个table,然后再取里面的值
      

  18.   

    19楼的代码,如果兼容性好一点,可以将rows改成children,如:
            function test() {
                var dl = document.getElementById("DataList1").children[0];
                var n1 = dl.children.length; //行数即记录数
                var n2 = dl.children[0].getElementsByTagName("SPAN").length; //一行中的字段数
                for (var i = 0; i < n1; i++) {
                    var s = "";
                    for (var j = 0; j < n2; j++) {
                        s += dl.children[i].getElementsByTagName("SPAN").item(j).innerHTML + ",";
                    }
                    alert(s);
                }
            }
      

  19.   

    全部都取到了,一行还不行吗?
    调用该函数,给个行数!如:
    function test(行数) {
    .....................
                    for (var j = 0; j < n2; j++) {
                        s += dl.children[行数].getElementsByTagName("SPAN").item(j).innerHTML + ",";
                    }
    ....................
      

  20.   

    可以了,谢谢大家,再次感谢("koukoujiayi(口口加一)")!