tag style change attribute javascript jquery css

javascript - style - title html



Atributos personalizados jquery (3)

Estoy pensando en usar atributos personalizados en Jquery para evitar el uso de atributos de clase o id, para no interferir con los diseñadores html.

Teniendo en cuenta esta idea, el html debería ser piezas como:

<ul Jquery="CommonUl"> <li Jquery="CommonLi"></li> <li Jquery="CommonLi"></li> <li Jquery="CommonLi"></li> <li Jquery="CommonLi"></li> <li Jquery="CommonLi"></li> </ul>

  • ¿Crees que este es un buen enfoque?

  • ¿Cuál es su opinión acerca de la validación W3C de estos atributos personalizados?

  • ¿Conoces alguna forma de programar con Jquery sin interferir con el trabajo de los diseñadores html?

  • Sobre el rendimiento, supongo que con los atributos de clase o identificadores, los selectores de jQuery son más rápidos que usar un atributo personalizado y funciones de filtrado como "contiene, etc.". ¿Es esto correcto?


Personalmente, le recomendaría usar el método integrado jquery para guardar datos con cada elemento. A continuación se muestra el fragmento de código para guardar datos:

$("ul").data("CommonUl"); $("li").data("CommonLi");


Puedes hacer esto, usar atributos de data- ( parte de la especificación HTML5 ), como esto:

<li data-something="CommonLi"></li>

jQuery incluso tiene soporte incorporado para estos en 1.4.3+, por ejemplo:

$("li").data("something") //"CommonLi"

Para tus otras preguntas:

  • Validarán si es HTML5, pero no romperán nada en HTML4
  • Esto no debería interferir con el diseñador, pero dependerá de qué diseñador
  • Si está obteniendo de un elemento, el rendimiento es el mismo que cualquier otro atributo

Si planea tener varios atributos, sugiero establecer un atributo de espacio de nombre único, por ejemplo,

<li data-yourapp>...</li>

y usar ese atributo como una tabla hash

$("li").data("yourapp", { points : 2000, life : 1, weapons : { firegun : 0, missiles : 12 } });

De esta forma, reducirá el acceso a los elementos y recuperará todos los datos personalizados una vez.