jQuery: v1.7.1
Hello guys,
I changed the img attributes from jQuery Like this:
$("document").ready(function () {
$("img").attr({ src: "images/Spring.jpg", alt: "spring" });
});
Changes are reflected in the browser but,
1) when I checked the “view source code” there were no changes(it was original html) which were changed by the js ,why?
Like this:
<a href="images/Grass.jpg">
<img src="images/Grass.jpg" alt="image"/> </a>
2) And when I checked from Firebug it showed the changes made by jquery ?
<a href="images/Grass.jpg">
<img alt="spring" src="images/Spring.jpg"> </a>
Whats going on here ?
Q) Are the changes made to DOM done in memory ? and How can firebug show it ?
The source code never changes. When you “view source” that just shows you exactly what the browser received from the server.
It is the DOM (Document Object Model) that you are manipulating, not the HTML.
The initial DOM state is a representation of the source HTML, but it is not permanently linked with the source HTML. Javascript changes the DOM but not the HTML. See here for a full explanation of the DOM: http://www.w3.org/TR/DOM-Level-2-Core/introduction.html
And a relevant quote from the page under the heading “What the DOM is not”:
Firebug (and other developer tool frameworks), similarly, show you the current state of the DOM (because that’s what is dynamic). That’s why see the change in Firebug, but not in the source code view.