2010-10-09 7 views
0

Je dois trouver un élément par son identifiant avec jQuery. Cet élément a l'id:Comment trouver des éléments par le dernier bit de leur ID avec jQuery?

txtHistoricalPricesDate 

qui serait facile à trouver dans des circonstances normales ce qui suit:

var element = $('#txtHistoricalPricesDate'); 

mais malheureusement, je travaille dans une application ASP.NET qui obligeamment renommé l'élément à:

ctl00_ContentPlaceHolder1_ucFundSearchResultsPanel_tabContainer_tabPriceTab_txtHistoricalPricesDate 

plutôt que salir le jQuery avec cette énorme ID ridicule, est-il un moyen que je peux dire jQuery pour trouver l'élément avec un ID qui se termine par txtHistoricalPricesDate ?

Répondre

2

Soit utiliser une classe, ou un attribute-ends-with selector, comme ceci:

var element = $('[id$=txtHistoricalPricesDate]'); 

Si vous devez utiliser ci-dessus (mais essayer d'utiliser une classe) préfixe alors avec le type d'élément, par exemple:

var element = $('input[id$=txtHistoricalPricesDate]'); 

pour utiliser une classe, vient de mettre sa propriété CssClass, par exemple CssClass="histPrices", utilisez un .class selector, comme ceci:

var element = $('.histPrices'); 

Sur tout élément normal, utilisez class="", mais comme il est un contrôle ASP.Net il ressemble, utilisez CssClass, comme c'est probablement la propriété WebControl que vous avez affaire.

1

Je vous recommande d'utiliser un sélecteur de classe pour éviter l'idgle ASP.NET. Ajoutez simplement une CssClass à votre élément et ensuite: $('.txtHistoricalPricesDate') ou si vous utilisez ASP.NET 4.0, vous pouvez ajuster le ClientIDMode à Predictable.

Questions connexes