使用JavaScript访问中继器值

使用JavaScript访问中继器值,javascript,.net,repeater,Javascript,.net,Repeater,我在网上搜索了很多,想找到答案,但是我找不到 有人能告诉我如何使用javascript访问内部repeater控件的标签和文本框值吗 这是我的密码 <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1"> <ItemTemplate> <table id="t1" width="200px:" style="background-color: sky

我在网上搜索了很多,想找到答案,但是我找不到

有人能告诉我如何使用javascript访问内部repeater控件的标签和文本框值吗

这是我的密码

 <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
    <ItemTemplate>
        <table id="t1" width="200px:" style="background-color: skyblue" runat="server">
            <tr>
                <td>
                    <asp:TextBox ID="TextBox3" Text='<%#DataBinder.Eval(Container.DataItem, "empid")%>'
                        runat="server" />
                    <asp:CheckBox ID="CheckBox1" runat="server" />
                    <asp:Label ID="Label1" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "empid")%>'></asp:Label>
                    <asp:Label ID="lblname" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "ename")%>'></asp:Label>
                    <br />
                    <br />
                </td>
            </tr>
        </table>
    </ItemTemplate>
</asp:Repeater>
但我在警报中得到了结果

[对象]

和@deocwalk

我用这种方式尝试了你的代码

但什么也得不到

    function GetData() {
        var arrTables = document.getElementById('myDiv').getElementsByTagName('table');
        var tbl = arrTables[0];
        var td = tbl.childNodes[0].childNodes[0].childNodes[0];
        var txt = td.childNodes[0];
        alert(txt.value);        
    }

ID必须是唯一的,因此不能对中继器中的所有标签应用相同的ID。改用CSS类名

<asp:Label CssClass="myLabel" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "empid")%>'></asp:Label>

由于jQuery随.NET一起提供,您可以使用它而不是普通的JavaScript来更轻松地访问这些元素


var thisLabel=$('.myLabel').eq(0)
其中0是元素的索引,因为可以有很多元素。

将中继器包装在一个具有某个id的div中,例如myDiv

<div id="myDiv">
<!-- your repeater code -->
<asp:Repeater ID="Repeater1" runat="server"...>
<ItemTemplate>
<table>...</table>
</ItemTemplate>
</asp:Repeater>
</div>
现在,
arrTables
只是div中所有表元素的数组。查找所需表的序号:例如,为了方便,我选择第一个表

var tbl = arrTables[0];
查找表元素的对应td:

var td = tbl.childNodes[0].childNodes[0].childNodes[0];
以上内容可能会因浏览器加载DOM和其他内容的方式而异。因此我说你自己调试和发现

获得td参考后:

var txt = td.childNodes[0];

这将给出文本框
txt.nextSibling
将给出标签…等等。

请提供您询问的相关HTML。我无法发布代码如何发布代码?它的发布方式类似于段落
函数submitAll(){var thisLabel=$('.myLabel').eq(0);警报(thisLabel);}
但在警报中,我得到了[object object]是的,它提供了对该对象的引用。可以使用$('.myLabel').eq(0.text()或$('.myLabel').eq(0.html())获取值:但是它只是给出一个值,我必须得到所有的值,所以我如何才能得到中继器的行数,这样我就可以使用它进行循环。我尝试了你的代码,但没有得到它,我把中继器的行数放在。。并通过函数GetData(){var arrTables=document.getElementById('myDiv').getElementsByTagName('table');var tbl=arrTables[0];var td=tbl.childNodes[0]。childNodes[0]。childNodes[0];var txt=td.childNodes[0];警报(txt.value);}
var tbl = arrTables[0];
var td = tbl.childNodes[0].childNodes[0].childNodes[0];
var txt = td.childNodes[0];