Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community!
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.Start your free trial
Brendan Moran14,052 Points
I understand the difference between the two, but why prop on the button and attr on the search field?
Just as the title says. I know that the prop is a property of the DOM, while the attributes are written directly into the HTML. Setting and getting can be done with both of them. Prop can be used on the search field just as well as attr. The weirdness is compounded by the fact that he is doing the same thing in both cases (setting disable to true). So that leads to the question, why does he quite intentionally use the two different jQuery methods? Is it just for teaching purposes, to show that they both exist, or is there a compelling reason to use attr on the search field instead of the more commonly recommended (from my research) prop?
nagamani palamuthi6,160 Points
the above blog helped in understanding the difference. Hope it helps other's too!
Graham Tonelli11,968 Points
Here he uses the .val() method. If I'm not mistaken the .prop() method will return a boolean value in some cases, where the .attr() method will return a string. There might be other minor differences but this is the major one. Often times many methods are interchangeable depending on the arguments passed to them and the objective in mind.
Michael Moore7,121 Points
This is just a wild guess. I am still very much learning this stuff. But I think the first one sets the property to disabled, and the second one is saying, if the searchfield(attr)disabled is true, make the value("searching....")
I could be wrong, but that is just a guess that it is a conditional statement.