/ / È considerata una cattiva pratica utilizzare attributi HTML non standard? [duplicato] - javascript, html

È considerata una cattiva pratica utilizzare attributi HTML non standard? [duplicato] - javascript, html

Trovo molto comodo impostare attributi arbitari come:

<a stackoverflowId="123">...</a>

E in JavaScript:

var soId = $selectofA.attr("stackoverflowId"); //jQuery

È una buona pratica? Non ho mai avuto un problema con questo ancora.

risposte:

17 per risposta № 1

In HTML 5 puoi farlo con il data-* attributo:

<a id="myDiv" data-stackoverflowId="123">...</a>

Dato che stai usando jQuery, potresti anche voler controllare jQuery Metadata Plugin. Ti permetterà di memorizzare e analizzare i metadati JSON nell'attributo class e il tuo markup continuerà a essere valido.

Saresti in grado di inserire i tuoi metadati in questo modo:

<a class="your_class {stackoverflowId: "123"}">...</a>

Ed estrailo come segue:

var data = $selectofA.metadata();

7 per risposta № 2

Se usi data- attributi, sarà almeno valido HTML5. Vedere Il post sul blog di John Resig sull'argomento.


1 per risposta № 3

Lo faccio sempre, funziona alla grande. Non ho mai riscontrato alcun problema con questa tecnica. Suppongo che non sia una cattiva idea se usare il data- prefisso come suggerito in alcune delle risposte.

Se sei davvero paranoico sugli standardconformità, è possibile scrivere l'HTML in modo conforme allo standard e impostare gli attributi sul DOM in uno script. Almeno, il documento verrà convalidato. Ma dal momento che il risultato netto sarà lo stesso, dovresti essere piuttosto malato per favorire quell'approccio al modo IMO di estendere l'HTML in base alle tue esigenze.

Un altro approccio è scrivere un DTD personalizzato che definisca esattamente quali estensioni si desidera utilizzare. Questo approccio è descritto in dettaglio qui: http://www.alistapart.com/articles/customdtd/

Fondamentalmente questo approccio si basa sul posizionamento di uncopia modificata della DTD XHTML in un determinato punto e utilizzando un doctype che punta a quella DTD personalizzata. Definireste le dichiarazioni di attributo extra in quella DTD modificata e, apparentemente, il validatore w3c utilizzerà effettivamente quella DTD per la convalida.

Tuttavia, non userei questo approccio per il normalesiti Web di Internet, mai. Temo che alcuni browser possano spingersi fino a convalidare il documento contro il mio dtd, ma poi rinunciare a un errore da qualche parte a metà .. Questa tecnica DTD personalizzata non è molto diffusa, semplicemente non mi prendo la possibilità di avere pagine web regolari.


1 per risposta № 4

Se stai usando jQuery (che era il tuo esempio) dovresti guardare il metodo dati:

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