Jak ustawić atrybut danych bez dodawania wartości w jQuery? Chcę to:
<body data-body>
Próbowałem:
$('body').attr('data-body'); // this is a getter, not working
$('body').attr('data-body', null); // not adding anything
Wszystko inne wydaje się dodawać drugie argumenty jako ciąg. Czy można ustawić atrybut bez wartości?
javascript
jquery
attributes
attr
David Hellsing
źródło
źródło
data-body
Vs.data-body=""
?required
atrybut sprawdzania poprawności formularza HTML5. Jestem pewien, że istnieje wiele innych ważnych przypadków użycia.Odpowiedzi:
Ta
attr()
funkcja jest również funkcją ustawiającą. Możesz po prostu przekazać mu pusty ciąg.Pusty ciąg utworzy po prostu atrybut bez wartości.
źródło
null
nie jest zaskakujący.$(el).prop('data-body', true)
działało dla mnie, gdzie$(el).attr('data-body', '')
skończyło się dla mnie ustawianie data-body = "data-body".$(el).prop('data-body', true)
nie działa dla mnie.attr()
działa, ale dodaje również pusty ciąg jako wartość atrybutu, który chcę dodać.Może spróbuj:
źródło
var btn = $(this).get(0); btn.setAttribute("disabled","");
Odpowiedź Zaakceptowany nie utworzyć atrybut name tylko już (od września 2017).
Należy użyć metody prop () JQuery, aby utworzyć atrybuty tylko nazwy.
źródło
Możesz to zrobić bez jQuery!
Przykład:
źródło
Nie jestem pewien, czy to jest naprawdę korzystne lub dlaczego wolę ten styl, ale to, co robię (w waniliowym js) to:
Spowoduje to dodanie atrybutu małymi literami bez wartości lub usunięcie go, jeśli już istnieje na elemencie.
https://developer.mozilla.org/en-US/docs/Web/API/Element/toggleAttribute
źródło