2011-03-08 12 views
7

Tenemos un atributo personalizado en las casillas de verificación en este caso llamado data-ref.Cómo se obtendría un atributo personalizado con Jquery

Cómo se obtiene el valor. Esto no funcionó. .

this.attr('data-ref'); 

Cualquier idea,

maravillosas

+1

Bueno, si se llama "fecha-ref", entonces es probable que no desea seleccionar "datos-ref", así que espero que uno de ellos es un error tipográfico en su pregunta! –

+0

Bueno, su pregunta indica que el atributo se llama "date-ref" (con una e) y su jQuery está buscando "data-ref" (con un a). No quiero ser confuso, pero ¿es ese el problema? –

Respuesta

15

que está consciente de que tiene una discrepancia entre su atributo personalizado 'fecha-ref' en el texto, y 'data-ref' en su jQuery?

Además, puede que le resulte más fácil trabajar con el objeto jQuery:

$(this).attr('data-ref'); 

JS Fiddle demo.

El problema, de hecho, parece ser que no estuviera utilizando un objeto jQuery:

this.attr('data-ref'); 

Can't work

Por otro lado, para recuperar data-* atributos usando el DOM, usted tiene las opciones de:

this.getAttribute('data-ref'); 

O:

this.dataset.ref; 

O:

this.dataset['ref']; 
+0

Gracias funcionó para mí :) –

2

$ ("selector") attr ("data-ref"); definitivamente debería funcionar.

Tal vez usted puede publicar su código html

1

tal vez usted debe utilizar:

$(this).attr('data-ref'); 

pero esto no es muy bonito! use jQuery.data() para almacenar datos en los nodos DOM.

de la tienda:

$('#divid').data('data-ref', 'i am data'); 

Para obtener:

var data = $('#divid').data('data-ref'); 
+1

Con la API ".data()", los atributos "data-foo" de HTML5 deben ser referenciados como solo "foo". – Pointy

1

El attr se dijo anteriormente() es cómo conseguir los atributos personalizados. Sin embargo, también tenga en cuenta que si está utilizando atributos * Data- de HTML5, también puede ahora aprovechar .data de jQuery() para acess que los datos:

http://api.jquery.com/data/

0

su problema de puesta en práctica puede ser con el uso de este. tal vez debería ser $ (esto) o puede no ser vinculante correctamente. No puedo encontrar ningún problema con eso ..ver http://jsfiddle.net/nvkVy/2/

<a href='api.fatherstorm.com' data-ref='test' data:ref='test' data_ref='test' class='testable'>test me</a> 

<script> 
$(document).ready(function(){ 

    $('.testable').click(function(){ 

     alert('data-ref='+$(this).attr('data-ref')); 
     alert('data:ref='+$(this).attr('data:ref')); 
     alert('data_ref='+$(this).attr('data_ref')); 
     return(false); 
    }); 
}); 
</script> 
Cuestiones relacionadas