En pocas palabras un atributo de datos se puede conectar al elemento que se describe por el atributo donde las áreas de la entrada oculto no pueden estar dentro de otro elemento DOM y su uso está limitado a formas (en buenas prácticas de todos modos) . La entrada oculta es un elemento DOM real, mientras que el atributo de datos está bien ... es un atributo, por lo que puede vincularse a un elemento DOM. Que en su mayor parte, pero si necesita más información y tal vez un ejemplo de seguir leyendo, te advierto que es un poco largo y el inglés no es mi lengua materna.
Básicamente, el atributo de datos se creó para agregar información adicional a los elementos DOM, que de otro modo no se le pueden asociar con los atributos existentes, como clase o la buena ID anterior.
Esto afecta principalmente a aplicaciones basadas en web o más específicamente a Saas, para las cuales la necesidad de atributos basados en datos es mucho más extensa que un sitio web normal (incluso con un CMS detrás).
Solía día sueño sobre este atributo hace muchos años, cuando sólo tenía 2 opciones:
- utilizar los atributos del HTML para algo que no estamos
creado originalmente diseñado o
- utilice los atributos de hTML con fichas en ellos, para decodificarlos con el lado del cliente o una función de servidor (split, de empalme, explotar)
el problema con este enfoque es que n Independientemente de cómo lo mires, no eres usando los atributos html de la forma en que están destinados y diseñados para ser utilizados.
Html es un lenguaje de marcado, por lo que naturalmente no tiene los atributos de datos con los que no se puede trabajar para manipular el procesamiento de datos y el comportamiento.
El escenario básico que tenía entonces es que quería tener un solo jQuery diálogo para cargar todos los formularios de entrada de datos (clientes, productos, proveedores, etc.) Cada formulario con diferente anchura y altura. De esta forma, el script del lado del cliente sería mucho más pequeño y necesitaría agregar un nuevo cuadro de diálogo para cada formulario nuevo que fuera agregado a la aplicación solicitada por el cliente.
Esta es la forma en que solía hacerlo antes de que el atributo de datos llegó:
Haga clic para añadir un nuevo producto
Dentro de la ficha Identificación tuve 3 valores:
- El formulario que se va a cargar desde el servidor
- El ancho de la ventana de diálogo
- La altura del dialo ventana g
Otro enfoque sería utilizar el atributo href pero esto es mucho peor que utilizando el ID simplemente porque el atributo href está destinado a señalar a un elemento DOM o de otra fuente, no para mantener los datos para estar procesado.
Cualquiera de los dos enfoques implica desglosar el token mediante división o una función similar.
Esto cómo lo hago ahora con el atributo de datos impresionante:
Haga clic para añadir un nuevo producto
De esta manera no necesito una ficha, que sólo puede obtener el valor de cada atributo con un buen viejo $ (this) .attr ('data-form') ;, $ (this) .attr ('data-dwith'); y así.
EN MI OPINIÓN Creo que es mejor agregar un poco más de datos a los elementos html que crear un archivo javascript mucho más largo y más pesado.
Para este caso, ¿por qué no escribes la ID como un atributo de ID normal? – elwyn
@elwyn: No tengo idea. Eso nunca se me ocurrió realmente. –