jQuery DOM 更改未出现在视图源中

IT技术 javascript jquery dom jquery-selectors append
2021-01-16 21:28:43

我在这里有一个简单的问题。我知道使用 jQuery,您可以通过执行以下操作在 DOM 中动态附加 HTML 元素

$('').append('<p>Test</p>');

但我的问题是,为什么这些元素实际上没有出现在代码中(例如,当您在浏览器中查看源代码时)。

请高手告诉我原因。谢谢

5个回答

原始来源永远不会改变。只有 DOM 发生了变化。

您可以使用浏览器的开发人员工具查看 DOM 更改的 HTML 可视化。

您应该知道,当您操作 DOM 时,您绝不会操作 HTML。开发人员工具提供的 HTML 可视化是对 DOM 当前状态解释没有对 HTML 标记进行实际修改。

这也是我的问题吗?如何?@和我
2021-04-01 21:28:43
+1 但是像谷歌这样的搜索引擎机器人呢?例如,我通过 ajax GET 从一些 rest api 加载的内容是否可见?
2021-04-06 21:28:43

因为 View Source 只显示最初发送到浏览器的 HTML。有很多方法可以查看更改后的 HTML - Firefox 中的 Firebug,IE 或 Chrome 中的 F12 开发人员工具。在 Firefox 中选择一些 HTML 并右键单击“查看选择源”也可以。

“查看源代码”仅显示在浏览器从服务器请求特定网页时服务器发送的源代码。因此,由于这些更改是在客户端进行的,因此它们不会显示在“查看源代码”中,因为它们是在原始页面交付后进行的。

要查看页面的实时源代码,您可以使用 webkit 浏览器中的 Web Inspector 视图或 Firefox 中的 Firebug。这些跟踪 DOM 的任何更改并更新您可以看到的源。

Web 开发人员工具(Firefox 插件)“ View generated source”中有一个选项,它将为您提供更改后生成的整个源代码。

view source->View generated source

有时 IE/Firefox/Chrome 中的开发工具跟不上您的 DOM。那只是意味着您正在处理一些值得绝地武士的代码 - 或者达斯维达将它留在那里供您调试。

比如什么时候?我正在使用 jquery.chosen 更新表单选择,并且在 Chrome devtools 中没有看到原始 html 发生变化,但是如果我检查$('.my-select')控制台中的元素,我会看到当前值是准确的......
2021-03-15 21:28:43
当 javascript 作为 ajax 负载的一部分动态注入页面时,我会得到这种行为。
2021-03-23 21:28:43