$('div').data('info', 1);
alert($('div').data('info'));
//this works
$('div[data-info="1"]').text('222');
//but this don't work
Estoy creando un elemento dentro de jquery. Después de eso, quiero agregar el atributo "datos". Es como y se agrega, pero en el DOM, esto no es aparente, y no puedo obtener el elemento, usando
$('div[data-example="example"]').html()
jquery
html
custom-data-attribute
Luntegg
fuente
fuente
.data()
menos que realmente tenga una razón para usar.attr()
..data()
no trabajes Que no se suman los datos de atributos de DOM, y no consigo elemento de datos de atributos ...data(key, val)
que crearía el attr. Alguien sabe por qué no?Note that this doesn't create an actual data-info attribute. If you need to create the attribute, use .attr():
Esta fue la clave de mi problema. Muchas gracias.El .data () de jQuery hace un par de cosas pero no agrega los datos al DOM como un atributo. Cuando se usa para capturar un atributo de datos, lo primero que hace es crear un objeto de datos jQuery y establece el valor del objeto en el atributo de datos. Después de eso, se desacopla esencialmente del atributo de datos.
Ejemplo:
Si toma el valor del atributo utilizando
.data('foo')
, devolverá "barra" como era de esperar. Si luego cambia el atributo usando.attr('data-foo', 'blah')
y luego usa.data('foo')
para tomar el valor, devolverá "barra" aunque el DOM lo indiquedata-foo="blah"
. Si usa.data()
para establecer el valor, cambiará el valor en el objeto jQuery pero no en el DOM.Básicamente,
.data()
es para configurar o verificar el valor de datos del objeto jQuery. Si lo está comprobando y aún no tiene uno, crea el valor en función del atributo de datos que se encuentra en el DOM..attr()
es para establecer o verificar el valor de atributo del elemento DOM y no tocará el valor de datos jQuery. Si necesita que ambos cambien, debe usar ambos.data()
y.attr()
. De lo contrario, quédese con uno u otro.fuente
en Jquery " datos " no se actualiza por defecto:
En su lugar, usaría " attr " para la actualización en vivo:
fuente
fuente
El uso
.data()
solo agregará datos al objeto jQuery para ese elemento. Para agregar la información al elemento en sí, debe acceder a ese elemento utilizando jQuery's.attr
o native.setAttribute
Para acceder a un elemento con el conjunto de atributos, simplemente puede seleccionar en función de ese atributo como lo anota en su publicación (
$('div[data-info="1"]')
), pero cuando lo usa.data()
no puede. Para seleccionar en función de la.data()
configuración, deberá utilizar la función de filtro de jQuery.jsFiddle Demo
fuente
para obtener el texto de un
fuente