需要一个优雅的解决方案,用jquery选择webform的dom元素?

时间:2011-10-18 10:14:43

标签: javascript jquery asp.net webforms

$("*[id$='blahblah']")

是一种很好的方式但不完美。

<asp:Button ID="chk" runat="server" Text="chk" />
<asp:Button ID="unchk" runat="server" Text="unchk" />

是否有一种简单而优雅的方式来精确选择它们? (像

这样复杂的功能
if(id.indexOf('$')!=-1){/*blahblah*/}

肯定不简单&amp;&amp; elegant)

3 个答案:

答案 0 :(得分:1)

框架是你的朋友。

如果您使用的是ASP.NET 4.0+,则可以像这样使用控件的ClientIDMode属性。

<asp:Button ID="chk" runat="server" Text="chk" ClientIDMode="Static"/>
<asp:Button ID="unchk" runat="server" Text="unchk" ClientIDMode="Static"/>

如果模式设置为静态,则控件的ID无论如何都不会改变。 (即在Master Page和所有内容中)。现在你可以优雅地称之为。

var b1 = $('#chk');
var b2 = $('#unchk');

对我来说看起来优雅的另一种方式是给出按钮CssClass,然后使用选择器进行类。即,.classname

答案 1 :(得分:0)

不确定你在这里问什么,但看看jQuery('#id')

所以你可以:

var ckeck = $('#chk');
var unckeck = $('#unchk');

答案 2 :(得分:0)

您可以使用&lt;%=%&gt;如果您不使用ASP.NET 4+

,请在标记中获取控件的ID
<asp:Button ID="example" Text="I should be hidden" runat="server" />
<script type="text/javascript">
    $(function() {
        $('#<%= example.ClientID %>').hide();
    });
</script>