我必须通过jQuery的id找到一个元素。该元素的id为:
txtHistoricalPricesDate
在正常情况下很容易找到以下内容:
var element = $('#txtHistoricalPricesDate');
但不幸的是,我正在使用一个ASP.NET应用程序,它有助于将该元素重命名为:
ctl00_ContentPlaceHolder1_ucFundSearchResultsPanel_tabContainer_tabPriceTab_txtHistoricalPricesDate
而不是用那个巨大的荒谬ID弄脏jQuery,有没有办法告诉jQuery找到一个以txtHistoricalPricesDate
结尾的ID的元素?
答案 0 :(得分:2)
使用类或attribute-ends-with selector,如下所示:
var element = $('[id$=txtHistoricalPricesDate]');
如果你必须使用上面的内容(但尝试使用一个类),那么在前面加上元素类型,例如:
var element = $('input[id$=txtHistoricalPricesDate]');
要使用某个类,只需设置其CssClass
属性,例如CssClass="histPrices"
,然后使用.class
selector,如下所示:
var element = $('.histPrices');
在任何普通元素上使用class=""
,但因为它是一个ASP.Net控件,所以使用CssClass
,因为可能你正在处理的WebControl属性用。
答案 1 :(得分:1)
我建议你使用类选择器来避免ASP.NET id变形。只需将CssClass附加到您的元素,然后:$('.txtHistoricalPricesDate')
或者如果您使用的是ASP.NET 4.0,则可以将ClientIDMode调整为Predictable
。