通过javascript访问转发器中的asp元素

时间:2013-11-26 07:28:15

标签: javascript jquery asp.net

情景:

我有一个表格,我在其中注册人。我有一个按钮“添加更多人”。转发器在Page_Load上运行了4次,所有控件都已在页面上(它们只是隐藏)。当我点击按钮时,我找到第一个隐藏的div并显示它。

问题:

现在我需要在转发器生成的特定div中使用特定元素(例如更改它的类)。但是我不知道如何访问它。 Id的访问不起作用,也不能按类访问。我无法从背后的代码做任何事情因为一切都已经在页面上。它必须在javascript中完成。有什么想法吗?

代码:

<asp:Repeater ID="rptOtherPeople" runat="server">
        <HeaderTemplate>
                 <h3>Other people</h3>
        </HeaderTemplate>
        <ItemTemplate>
            <div class="GridRow" id="personRow" style="display: none">           
                    <dl>
                        <dt class="form-lbl left">Name</dt>
                        <dd class="form-value left">
                            <asp:TextBox ID="txtFirstName" CssClass="mid-inp required" Text="" runat="server"></asp:TextBox>
                        </dd>
                    </dl>
                    <div class="clear"></div>
                    <div class="separator"></div>
          </div>
        </ItemTemplate>
        <FooterTemplate> </FooterTemplate>
    </asp:Repeater>

显示下一行的javascript:

 var peopleNum = 1;
$(document).ready(function () {
    for (i = 0; i < peopleNum; i++) {
        $(".GridRow").each(function (index) {
            if (index == i)
                $(this).show();
        });
    }
})

function addPerson() {
    peopleNum++;
    $(".GridRow").each(function (index) {
        if (index == peopleNum-1)
            $(this).show();
    });
}

3 个答案:

答案 0 :(得分:2)

你能明白一点吗?你什么时候想改变CSS或任何其他东西?我们可以在Jquery中处理转发器

示例:

$("[id*=txtFirstName]").change(function () {
         // This displays the text from the Tag element of the button...    
                $(this).css("background", "red");
            });

答案 1 :(得分:0)

你有一些选择,第一是使用ID来找到像这样的元素数组

$($( "input[id*='txtFirstName']" )[i]).addClass("myNewClass")

这意味着其id包含txtFirstName的所有元素。

另一个是你的网格选择:

$($(".GridRow")[i]).find(".mid-inp").addClass("myNewClass")

答案 2 :(得分:0)

检查一下:

$($(".GridRow")[i]).addClass("Yourclass");