Почему вы не используете ClientIDMode для создания статических идентификаторов? Какую версию .NET Framework вы используете?
Еще один вариант (для более старых версий) - обернуть ваш элемент управления .NET в div со статическим идентификатором, а затем использовать jQuery следующим образом:
var wrapper = $('#wrapperDivId');
var control = wrapper.find('typeOfControl')[0];
Таким образом, независимо от того, как отображается идентификатор вашего элемента управления, вы всегда можете получить к нему доступ.
Например, TextBoxes отображаются в <input type='text' />
. Теперь вы можете обернуть текстовое поле внутри div следующим образом:
<div id='wrapper'>
<asp:TextBox ID='firstName' runat='server' />
</div>
Теперь, независимо от идентификатора клиента, вы можете получить текстовое поле на стороне клиента, используя:
$('#wrapper input')