jquery - 使用 jQuery 和 ASP.NET 用户控件时如何处理元素 ID

标签 jquery asp.net user-controls name-mangling name-matching

我在 ASP.NET 中有一些用户控件,我将它们简单地用作 HTML,即没有任何隐藏代码。

我的一个控件有一个具有固定 ID 的元素,我用一些 jQuery 客户端脚本来指向它。例如:

<div id="slider-section"></div>

<script type="text/javascript" language="javascript">
    $(document).ready(function () {
        var slider = $('#slider-section');
        // ... do something with the jQuery Object
    });
</script>

这工作得很好,没有任何问题。但这有一个副作用。事实上,如果我在页面上添加同一用户控件的两个实例,我将拥有两个具有相同 ID 的元素。

您认为处理这种情况的好方法是什么?

谢谢

最佳答案

Asp.net Controller 在客户端呈现时会创建不同的 ID,例如:

您定义一个文本框:

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

如果你检查页面的源代码,你会注意到文本框ID将是这样的:

id="{GUID}_Textbox1"

所以你需要做的是使用选择器来查找 ID 的末尾,如下所示:

<div id="slider-section"></div>

    <script type="text/javascript" language="javascript">
        $(document).ready(function () {      
            var slider = $('input[id$='TextBox1']').{youroptions};
            // ... do something with the jQuery Object
        });
    </script>

在此处查看文档:http://api.jquery.com/category/selectors/

享受;)

关于jquery - 使用 jQuery 和 ASP.NET 用户控件时如何处理元素 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6830328/

相关文章:

c# - 在 UserControl (ASP.NET) 中时 URL 未被解析

c# - dragablz TabablzControl wpf 禁用标签切换和拖动

c# - ASP.NET 动态添加 UserControl 到 PlaceHolder,不触发 Click 事件,只触发 Page_Load

javascript - 如何将图标/按钮移到文本框 x-webkit-speech 之外?

jQuery - 侧滑菜单

c# - 读取文本框的文本

c# - 转换 bool 值?在 View 中 bool

jquery - 如何只为表格中的一个特定列保留水平滚动条?

javascript - BlueImp Gallery 允许垂直拖动图像

c# - 如何与 Entity Framework 建立一对一或零的关系并公开子实体上的外键?