Estoy usando el complemento jQuery quicksand. Necesito obtener la identificación de datos del elemento seleccionado y pasarla a un servicio web. ¿Cómo obtengo el atributo de identificación de datos? Estoy usando el .on()
método para volver a vincular el evento de clic para los elementos ordenados.
$("#list li").on('click', function() {
// ret = DetailsView.GetProject($(this).attr("#data-id"), OnComplete, OnTimeOut, OnError);
alert($(this).attr("#data-id"));
});
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<ul id="list" class="grid">
<li data-id="id-40" class="win">
<a id="ctl00_cphBody_ListView1_ctrl0_SelectButton" class="project" href="#">
<img src="themes/clean/images/win.jpg" class="project-image" alt="get data-id" />
</a>
</li>
</ul>
javascript
jquery
custom-data-attribute
Bruce Adams
fuente
fuente
on()
método, yalive()
que ahora está en desuso, y esta pregunta recibe bastantes visitantes.Respuestas:
Para obtener el contenido del atributo
data-id
(como en<a data-id="123">link</a>
) debes usaro
.data()
(si usa jQuery más nuevo> = 1.4.3)y la parte posterior
data-
debe estar en minúscula, por ejemplodata-idNum
, no funcionará, pero lodata-idnum
hará.fuente
attr()
porque jQuery estaba quitando los ceros iniciales de los códigos postales usandodata()
, TFM dice: "A partir de jQuery 1.4.3, los atributos de datos HTML 5 se incorporarán automáticamente al objeto de datos de jQuery ... Se hace todo lo posible para convertir la cadena a un valor de JavaScript (esto incluye booleanos, números, objetos, matrices y valores nulos). Un valor solo se convierte en un número si al hacerlo no cambia la representación del valor. Por ejemplo, "1E02" y "100.000" son equivalentes como números (valor numérico 100) pero convertirlos alteraría su representación para que se dejen como cadenas. "$(this).data().id //returns 123
Si queremos recuperar o actualizar estos atributos usando JavaScript nativo existente, entonces podemos hacerlo usando los métodos getAttribute y setAttribute como se muestra a continuación:
A través de JavaScript
A través de jQuery
Lee esta documentación
fuente
Nota IMPORTANTE. Tenga en cuenta que si ajusta el
data-
atributo dinámicamente a través de JavaScript, NO se reflejará en ladata()
función jQuery. Tienes que ajustarlo a través de ladata()
función también.js:
fuente
Si no le preocupan los navegadores IE antiguos, también puede usar la API de conjunto de datos HTML5
HTML
JS
Demostración: http://html5demos.com/dataset
Lista completa de soporte del navegador: http://caniuse.com/#feat=dataset
fuente
Sorprendido, nadie mencionó:
Aquí está el ejemplo de trabajo: https://jsfiddle.net/ed5axgvk/1/
fuente
HTML
JS
o
¡Funciona para mi!
fuente
Yo uso $ .data - http://api.jquery.com/jquery.data/
fuente
¡funciona para mi!
fuente
id
Para mí, acceder al atributo de datos es un poco fácil.$("#Id").data("attribute");
fuente
Esta pieza de código devolverá el valor de los atributos de datos, por ejemplo: ID de datos, tiempo de datos, nombre de datos, etc., he mostrado para la identificación
js:
// obtener el valor de la identificación de datos -> a1
// esto cambiará el ID de datos -> a2
// obtener el valor de la identificación de datos -> a2
fuente
usando jQuery:
fuente
Para aquellos que buscan eliminar y volver a habilitar dinámicamente la información sobre herramientas, puede usar los métodos
dispose
yenable
. Ver https://getbootstrap.com/docs/4.0/components/tooltips/#tooltipdisposefuente
Tengo un lapso Quiero tomar el valor del atributo data-txt-lang, que se usa definido.
fuente
El problema es que no está especificando la opción o la opción seleccionada del menú desplegable o la lista. Aquí hay un ejemplo para el menú desplegable, estoy asumiendo un registro de datos de atributos de datos.
fuente