2015-05-06 11 views
6

Używam danych atrybutów elementów HTMLCzy konieczne jest sprawdzenie, czy element ma atrybut?

Przykład:

<div class="fruit" data-color="red">...</div> 

w jQuery Jestem uzyskiwanie danych atrybut używając $(this).data("color") i dodając, że ma nazwę klasy do elementu.

Czy konieczne jest sprawdzenie najpierw, czy atrybut danych istnieje przed dodaniem go do klasy? Przykład:

// $(this) is .fruit div 
if ($(this).data("color")) { 
    $(this).addClass($(this).data("color")); //adds data value as class to element 
} 

czy obsługuje ją jQuery? Próbowałem uruchomić kod bez instrukcji if i nie dostaję żadnych błędów, jeśli element nie ma atrybutu "koloru" danych. Zgaduję, że jQuery po prostu to ignoruje.

Odpowiedz

5

jQuery obsługuje to dla Ciebie - w rzeczywistości jest bardzo odporny na to, co zaakceptuje dla większości parametrów metody bez powodowania błędów.

W tym przypadku, jeśli atrybut data nie zostanie znaleziony (lub nie ma wartości), zwróci undefined. Jeśli następnie addClass(undefined) jQuery nie wykona żadnej akcji na wybranych elementach.

Powiązane problemy