2010-11-22 15 views
5

Używam rel do przechowywania niektórych informacji innych niż html, jakie inne atrybuty nie są powszechnie używane i mogę je wykorzystać do przechowywania informacji?Różne informacje Atrybuty elementów HTML

+1

To niebezpieczne rzeczy. Atrybut Rel jest w rzeczywistości dość szeroko używany, tzn. Używa go między innymi Google bot. Nie zaleca się używania zdefiniowanych atrybutów HTML do własnych celów. –

+0

@Chris: Wszystkie te rzeczy są generowane przez fragment kodu JavaScript, czego nikt nie powinien czytać. –

+0

dokładnie punkt! –

Odpowiedz

5

Możesz przełączyć na HTML5 i użyć custom data attributes.

+0

Zanim pojawił się HTML5, zawsze użyłem _something jako nazw atrybutów dla niestandardowych danych, przy założeniu, że jest mało prawdopodobne, że prawdziwy atrybut zacznie się od podkreślenia. Czy jest to "dopuszczalne" założenie, czy lepiej byłoby zmienić wszystko na dane - coś? –

+0

Polecam używanie 'data- *', ponieważ jest to poprawny kod HTML w ramach umowy. –

+0

Użyję tego, dzięki. Używam funkcji 'attr' jQuery, więc natywna implementacja JS nie jest potrzebna. –

3

w HTML5 można zdefiniować własne data- atrybutów do przechowywania, co chcesz.

3

Jeśli chcesz, możesz nadrobić własne atrybuty. Prawdopodobnie nie jest dobrym pomysłem umieszczanie danych w atrybucie, jeśli według specyfikacji powinien on mieć coś znaczącego.

2

W HTML 5 spec można używać atrybutów data-*; gwarantują, że nic nie zrobią w przeglądarce i będą działać również w starszych przeglądarkach.

W JavaScript można uzyskać do niego dostęp z normalnych właściwościach atrybutu:

var value = elem.getAttribute("data-foo") 
elem.setAttribute("data-foo", "value") 
elem.removeAttribute("data-foo") 

Z nowych przeglądarek można używać elem.dataset, ale prawdopodobnie nie chcesz to zrobić jak starsze przeglądarki nie będą go wspierać .

var value = elem.dataset.foo; 
elem.dataset.foo = "value"; 
elem.dataset.foo = null; 
1

HTML5 teraz supports przechowywania informacji w data- * atrybuty ale to HTML5 i nie każdy jest tam jeszcze. A więc scenariusz z prawdziwego świata ...

Jeśli nie musisz martwić się o to, czy będzie się on utrzymywał w poprzek postów, możesz zmapować proste obiekty danych jako zbiór var JSON i wyciągnąć obiekt z niego na podstawie określonego klucza. Ale to jest szerokie podejście - więcej informacji na temat ogólnego celu poprawi opinie.

1

Zależy od rodzaju informacji, które mają być przechowywane i jak planujesz uzyskać do nich dostęp. Z powodzeniem wykorzystałem atrybuty id i class do przechowywania i uzyskiwania dostępu do identyfikatorów bazy danych, a nawet do niektórych tabel bazy danych, które następnie pobierałem za pomocą jQuery w celu wykonania niektórych żądań AJAX.

Jeśli NIE używasz HTML5, odradzam używanie własnych atrybutów niestandardowych. W przeciwnym razie, tak jak ludzie już wcześniej sugerowali, spójrz na atrybuty z prefiksem data-.

0

data- * jest sposobem, aby przejść do HTML5. Możesz łatwo uzyskać do nich dostęp w javascript za pomocą elem.data. *

W przeciwnym razie niestandardowe atrybuty są prawdopodobnie lepsze niż zepsucie semantyki strony.

Powiązane problemy