jQuery更改了html页面的内容;查看源“;don'不能反映变化

Content of html page changed by jQuery but "View Source" don't reflect the changes

本文关键字:don 不能 变化 html jQuery      更新时间:2023-09-26

jQuery:v1.7.1
大家好,
我更改了jQuery的img属性,如下所示:

        $("document").ready(function () {
        $("img").attr({ src: "images/Spring.jpg", alt: "spring" });
    });

更改反映在浏览器中,但
1) 当我检查"查看源代码"时,js没有更改(它是原始html),为什么?像这样:

    <a href="images/Grass.jpg">
    <img src="images/Grass.jpg" alt="image"/> </a>

2) 当我从Firebug中查看时,它显示了jquery所做的更改?

<a href="images/Grass.jpg">
<img alt="spring" src="images/Spring.jpg"> </a>

这里发生了什么事
Q) 对DOM所做的更改是在内存中完成的吗?萤火虫怎么能表现出来?

源代码从未更改。当你"查看源代码"时,它会准确地显示浏览器从服务器收到的内容。

您正在操作的是DOM(文档对象模型),而不是HTML。

初始DOM状态是源HTML的表示,但它并没有与源HTML永久链接。Javascript会更改DOM,但不会更改HTML。有关DOM的完整解释,请参见此处:http://www.w3.org/TR/DOM-Level-2-Core/introduction.html

文档对象模型(DOM)是一种应用程序编程接口(API),用于有效的HTML和格式良好的XML文档。它定义文档的逻辑结构和文档的方式访问和操纵。

以及标题为"DOM不是什么"的页面中的相关引用:

文档对象模型不是将对象持久化为XML或HTML。不是指定如何在XML中表示对象DOM指定如何将XML和HTML文档表示为对象,从而可以在面向对象的程序中使用它们。

类似地,Firebug(和其他开发工具框架)向您显示DOM的当前状态(因为这是动态的)。这就是为什么可以在Firebug中看到更改,但不能在源代码视图中看到。

无论如何,也可以查看DOM的当前状态。您可以通过CTRL+A选择全部,然后右键单击转到查看选择源