O ile mi wiadomo, funkcja .prop() może zrobić wszystko, co może zrobić funkcja .attr(), ale w ogólnie bezpieczniejszy i prostszy sposób.Czy jest jakaś sytuacja, w której muszę użyć .attr() nad .prop()?
Na przykład:
- Jeśli chcę uzyskać domyślny stan pole wyboru w HTML, mogę zrobić
$('myCheckbox').prop('defaultChecked')
(zamiast$('myCheckbox').attr('checked')
). To rzeczywiście wydaje się bezpieczniejsze niż używanie.attr('checked')
, jako atrybut może stracić to wartość, jeśli pole jest dynamicznie zmieniane, natomiast.prop('defaultValue')
utrzymuje wartość (np http://jsfiddle.net/p1Lrgwnb/1/) - Choć często widzę
.attr()
spójny z wartościami takimi jakid
iname
na przykładach StackOverflow,.prop()
działa również z tymi. Jestem nieświadomy jakiegokolwiek powodu, dla którego.attr()
wydaje się być preferowany dla tych wartości innych niż tradycyjne konwencje i nawyki.
Czy istnieje kiedykolwiek przypadek użycia gdzie trzeba użyć .attr()
lub że funkcja .prop()
nie dałby mi niezbędne informacje?
EDIT: To pytanie nie ma nic wspólnego z tym, co jest różnica między .prop()
i .attr()
. Przestudiowałem te pytania na temat StackOverflow dogłębnie, w tym jeden link poniżej (stackoverflow.com/questions/5874652/prop-vs-attr). Z mojego pytania jasno wynika, że w pełni rozumiem różnicę między tymi dwoma, prawdopodobnie lepiej niż większość. Moje pytanie brzmi: czy są jakieś okoliczności, które muszę musi użyć .attr(), co jest zupełnie innym pytaniem od .prop() vs .attr().
Cóż zawsze [to istniejąca wcześniej post] [1], aby odpowiedzieć na to pytanie. [1]: http://stackoverflow.com/questions/5874652/prop-vs-attr – dudewad
mam do ponownego głosowania na to pytanie, ponieważ nie wierzę, żadnych odpowiedzi na pytania związanego faktycznie dyskutować, kiedy programista może chcieć użyć 'attr()' w scenariuszu świata rzeczywistego. – StriplingWarrior
@dudewad Proszę ponownie przeczytać moje pytanie. To całkowicie różni się od pytania, które łączyłeś, które przeczytałem i przestudiowałem dogłębnie przed opublikowaniem mojego pytania. Jeśli możesz znaleźć odpowiedź na moje pytanie w tym linku, proszę odwołać się do niego. – dallin