¿Cómo obtengo el ID de un control de servidor con jQuery?recuperar ID del control del servidor usando jQuery
E.g. Tengo
<asp:Label ID="label1" runat="server""></asp:Label>
y ahora quiero conseguir "label1",
var id = ??
¿Cómo obtengo el ID de un control de servidor con jQuery?recuperar ID del control del servidor usando jQuery
E.g. Tengo
<asp:Label ID="label1" runat="server""></asp:Label>
y ahora quiero conseguir "label1",
var id = ??
jQuery se ejecuta en el lado del cliente por lo que sólo sería capaz de acceder al ID del elemento HTML en lugar de la control asp en el servidor.
Cierto, jQuery se ejecuta en el lado del cliente. Sin embargo, ASP hace algunas cosas funky a los ID de controles con la etiqueta runat. Entonces no puedes usar la ID. Cambia en el tiempo de ejecución ... –
var labelID = $('#<%= label1.ClientID %>');
Debe obtener la ID del cliente.
Si solo necesita la ID, y no el valor real del control, entonces ni siquiera necesita jQuery.
var labelID = '<%= label1.ClientID %>';
En su primer ejemplo, cambiaría el nombre de 'id' a otra cosa ya que es una referencia al envoltorio de JQuery para el elemento de etiqueta. –
Las etiquetas se representan como etiquetas span. Así que si usted desea seleccionar todas las etiquetas:
$(document).ready(function()
{
$Labels = $("span");
$Labels.each(function()
{
alert(this.id);
});
});
Si utiliza ASP.NET 4.0 se puede establecer el atributo de ClientIDMode = "estático" y su código se ve siguiente manera:
<asp:Label ID="label1" runat="server" ClientIDMode="Static"></asp:Label>
JS:
var id = 'label1';
tengo que amar .net 4.0. toda la cosa de 'clientid' definitivamente causó algunas largas horas de google para mí en el día. –
Puede agregar páginas clientIdMode = "Static" directiva en web.config para hacer que todo el sitio haga esto. – Rake36
En realidad, ¿no debería ser el js 'var id = document.getElementById (" label1 ");'? – Krondorian
¿Estás utilizando la página maestra? En caso afirmativo, dale ContentPlaceHolderID junto con la identificación de control.
Ej:
jQuery("#ContentPlaceHolderID_ControlId").val;
jQuery("#body_label1").text;
Usted puede ver esto en ViewSource
Ese enfoque se pone feo, más "anidamiento" tiene. Paneles ASP, controles de usuario, páginas maestras, etc. todos agregan al valor de ID. O bien necesitas utilizar un enfoque jQuery puro, y obtener el control que "termina con" tu valor de ControlID, o utilizar el enfoque que mencionaron @pstarkov o Jack Marchetti. –
var $lblObj = $("label[id$='label1']:first")
un vistazo a los elementos HTML que genera. No estoy seguro de cómo funciona ASP 'runat' – JohnP
@JohnP es correcto, puede ver el HTML, o simplemente usar el ID de cliente como se muestra a continuación. –