2009-04-22 13 views
6

Por lo general, he intentado mantener los atributos exclusivos de DOM al escribir Javascript. Ahora que cambié de Prototype a jQuery, puedo obtener un gran beneficio al agregar mis propios atributos a varios elementos DOM, principalmente en el ámbito de poder configurar una convención de codificación muy legible para manejar solicitudes AJAX.Atributos de HTML que no son (X) ... alguna desventaja?

Como un ejemplo corto, esto significa que hago cosas como

<div type="book" app_id="13"> 
    <a href="#" action="delete">delete</a> 
</div> 

Y entonces puedo configurar código para encontrar todos los <a> etiquetas con un atributo action, encontrar un padre con un type y app_id, y luego hacer operaciones CRUD ... todo sin que tenga que escribir código adicional.

¿Hay algún inconveniente (aparte de no ser una queja estrictamente XHTML) que deba tener en cuenta, y/o cualquier buen hábito que debería emular? ¿Qué tal una forma estándar de configurar mi propio espacio de nombres de atributos?

Respuesta

6

Según this question, el uso de espacios de nombres XML en XHTML 1.0 no es válido. Agregar mis propios atributos al mismo espacio de nombres me parece peor, ya que ciertamente no son válidos, incluso en lo que respecta a XML.

Si estuviera haciendo esto, obtendría mi millaje de class y rel atributos. Por ejemplo:

<div class="book" id="book_13"> 
    <a href="http://example.com/url/to/delete/non/ajaxily" class="delete">delete</a> 
</div> 
+0

Por desgracia, si quieres a continuación, utilizar diferentes clases de proporcionar retroalimentación visual (por ejemplo , fondos diferentes para un libro prestado vs. no prestado), o necesita otro elemento de envoltura o necesita ir con la ruta de atributo personalizado. –

+2

@Don - No, no es así. Puedes usar múltiples clases en cualquier elemento, solo sepáralos con espacios. el "libro de salida vencido mañana", por ejemplo, es perfectamente válido –

+0

@Mark - Tiene razón, pero la forma en que dice necesita un análisis que no es preferible. Elegiría (y en realidad habría elegido) la ruta del atributo personalizado. – BYK

0

No veo nada de malo en este enfoque. De hecho, he visto muchos ejemplos de esto y yo mismo utilicé este enfoque en muchas aplicaciones y no he enfrentado ningún obstáculo, excepto ese problema de validación. Así que creo que eres libre de ir =)

+0

Sin duda tendrá que buscar accidentalmente el nombre de un elemento sobre el que actuarán uno o más navegadores. La mayoría de los navegadores aceptan ciertos atributos, incluso si no son necesariamente válidos (especialmente IE). – Travis

0

No veo nada de malo en agregar atributos no válidos a menos que alguien esté usando un navegador desconocido que sea súper estricto y falle en cualquier cosa que no sea un estándar. Esto podría suceder, supongo ... pero es dudoso ...

Una buena alternativa, sin embargo, sería utilizar jQuery Metadata Plugin para almacenar pares de clave-> valor fácilmente accesibles desde dentro de un atributo.

Cuestiones relacionadas