Mam element wejściowy formularza i chcę zmienić jego atrybut tytułu. To musi być łatwe jak ciasto, ale z jakiegoś powodu nie mogę znaleźć, jak to zrobić. Jak to się robi i gdzie i jak powinienem szukać, jak to zrobić?
źródło
Mam element wejściowy formularza i chcę zmienić jego atrybut tytułu. To musi być łatwe jak ciasto, ale z jakiegoś powodu nie mogę znaleźć, jak to zrobić. Jak to się robi i gdzie i jak powinienem szukać, jak to zrobić?
Zanim napiszemy kod, omówmy różnicę między atrybutami a właściwościami. Atrybuty to ustawienia stosowane do elementów w znacznikach HTML ; przeglądarka następnie analizuje znaczniki i tworzy obiekty DOM różnych typów, które zawierają właściwości zainicjowane wartościami atrybutów. Na obiektach DOM, takich jak proste HTMLElement
, prawie zawsze chcesz pracować z jego właściwościami , a nie kolekcją atrybutów .
Obecną najlepszą praktyką jest unikanie pracy z atrybutami, chyba że są one niestandardowe lub nie istnieje równoważna właściwość do ich uzupełnienia. Ponieważ title
rzeczywiście istnieje wiele właściwości odczytu / zapisu HTMLElement
, powinniśmy z niego skorzystać.
Możesz przeczytać więcej na temat różnicy między atrybutami i właściwościami tutaj lub tutaj .
Mając to na uwadze, zmanipulujmy, że title
...
title
właściwość elementu bez jQueryPonieważ title
jest to własność publiczna, możesz ustawić ją na dowolnym elemencie DOM, który ją obsługuje za pomocą zwykłego JavaScript:
document.getElementById('yourElementId').title = 'your new title';
Wyszukiwanie jest prawie identyczne; nic specjalnego tutaj:
var elementTitle = document.getElementById('yourElementId').title;
To będzie najszybszy sposób zmiany tytułu, jeśli jesteś optymistą, ale ponieważ chciałeś zaangażować jQuery:
title
właściwość elementu za pomocą jQuery (v1.6 +)jQuery wprowadził nową metodę w wersji 1.6, aby uzyskać i ustawić właściwości. Aby ustawić title
właściwość elementu, użyj:
$('#yourElementId').prop('title', 'your new title');
Jeśli chcesz odzyskać tytuł, pomiń drugi parametr i przechwyć zwracaną wartość:
var elementTitle = $('#yourElementId').prop('title');
Sprawdź prop()
dokumentację API dla jQuery.
Jeśli naprawdę nie chcesz używać właściwości lub korzystasz z wersji jQuery wcześniejszej niż 1.6, powinieneś przeczytać:
title
atrybut elementu za pomocą jQuery (wersje <1.6)Możesz zmienić title
atrybut za pomocą następującego kodu:
$('#yourElementId').attr('title', 'your new title');
Lub pobierz go za pomocą:
var elementTitle = $('#yourElementId').attr('title');
Sprawdź attr()
dokumentację API dla jQuery.
W modalnych oknach dialogowych interfejsu użytkownika jquery musisz użyć tej konstrukcji:
źródło
ja wierzę
lub
powinien załatwić sprawę ...
Myślę, że wszystkie podstawowe funkcje można znaleźć w jQuery Docs , chociaż nie znoszę formatowania.
źródło
Inną opcją, jeśli wolisz, byłoby pobranie elementu DOM z obiektu jQuery i użycie na nim standardowych akcesoriów DOM:
„Sposób jQuery”, jak wspominają inni, polega na użyciu metody attr (). Zobacz dokumentację API dla attr () tutaj .
źródło
dla pierwszego tytułu:
https://github.com/ertaserdi/jQuery-Title
źródło
Jeśli tworzysz
div
i próbujesz dodaćtitle
do niego.Próbować
źródło
Jako dodatek do odpowiedzi @ Cᴏʀʏ upewnij się, że tytuł podpowiedzi nie został wcześniej ustawiony ręcznie w elemencie HTML. W moim przypadku klasa rozpiętości podpowiedzi miała już stały tekst tytułowy, z tego powodu moja funkcja JQuery
$('[data-toggle="tooltip"]').prop('title', 'your new title');
nie działała.Kiedy usunąłem atrybut title w klasie span HTML, jQuery działało.
Więc:
Powinien być:
źródło