jQuery$(";script>;<;/script>;).appendTo(";head";);不会显示在生成的源代码中。怎样?

jQuery$(";script>;<;/script>;).appendTo(";head";);不会显示在生成的源代码中。怎样?,jquery,invisible,appendto,Jquery,Invisible,Appendto,这不是什么问题,但我很感兴趣 通常我们将元素附加到头部/身体上,就像 $(“”)。附加到(“头”); $(“”)。附件(“正文”); 当我们查看生成的源代码时,这些元素确实存在。但是, $(“”)。附加到(“头”); 源代码中没有显示脚本元素 我浏览了jQuery的源代码,除了纯javascript之外,没有发现任何特殊的东西 append:function(){ 返回此.domManip(参数、true、函数(elem){ if(this.nodeType==1){ 这个.appendCh

这不是什么问题,但我很感兴趣

通常我们将元素附加到头部/身体上,就像

$(“”)。附加到(“头”);
$(“”)。附件(“正文”);
当我们查看生成的源代码时,这些元素确实存在。但是,

$(“”)。附加到(“头”);
源代码中没有显示脚本元素

我浏览了jQuery的源代码,除了纯javascript之外,没有发现任何特殊的东西

append:function(){
返回此.domManip(参数、true、函数(elem){
if(this.nodeType==1){
这个.appendChild(elem);//试试这个

<script>
$("<scri"+"pt></sc"+"ript>").appendTo("head");
</script>

$(“”)。附于(“标题”);
您必须从代码中“转义”该标记,否则浏览器会将其识别为您的结尾

大多数浏览器中的“查看源代码”选项仅显示页面最初加载时标记的外观。由于您在加载页面后操作DOM,因此在您加载时,这些更改并不容易看到“查看源。”


一些web开发工具,如Firebug(用于Firefox)或IE开发工具栏(Internet Explorer)将通过允许您检查元素来向您显示被操纵的标记。

这与您最初可能认为的
appendTo
并不是完全相关的。相反,jQuery为其所有将任意HTML字符串插入DOM的函数所做的事情

要深入了解为什么会发生这种情况,请阅读John Resig对同一问题的回答


据我所知,jQuery实际上在将脚本标记插入DOM后删除了它,以避免代码的重新执行。

当我看到已经有了答案时,我想我应该为我发现的内容添加一个注释

我遇到了类似的情况:我正在生成一个目录,其中列出了我网站中每个h1、h2、h3元素的链接。TOC将跨越整个网站的页面,并包含在一个单独的页面上。我不必手动创建它,而是将所有页面合并,然后使用jquery快速创建一个动态页面指向每个标题的超链接的有序列表

然后,我打算将代码复制粘贴到它自己的页面中,并使其可用-我在firefox中遇到的问题是,代码没有显示在“查看源代码”窗口中,只显示在firebug inspect element HTML窗口中-那么我如何复制它呢

我发现如果我使用IE的开发者工具,我可以利用开发者部分的HTML编辑选项从元素浏览器窗口复制和粘贴代码


可能有更好的方法来创建一个大型嵌套内容表,其中包含指向每个h1、h2、h3…h7的链接,但我对所有这些都不熟悉,所以我选择了这条路线。也许这会对某人有所帮助:)

您使用的浏览器是什么?例如,在chrome中,除非单击“检查元素”,否则您将看不到更新的dom。view source将向您显示原始标记。您为什么要使用appendTo…与jquery通常使用的方式相比有点落后。请尝试使用append()相反…@Endophage:jQuery文档中这两个方法的第一句话是“The.append()和.appendTo()方法执行相同的任务。“除此之外,这是个人偏好。@Cory我知道……这几乎是jQuery的每一个其他部分都先选择元素,然后再处理它。另外,由于appendTo实际上只是append的包装器,为什么不直接去呢。@Endophage:我同意,但其中一个更接近我的思维过程。如果我说“我想在头上添加一个脚本标记”,我的大脑对“在头上添加脚本标记”=>
$('');
比“在头上添加脚本标记”=>
$('head')。附加('');
就像我说的,我想个人偏好:)更简单:
$('')
。你看到大写的“头”了吗"标题中的单词?我正在使用Firebug和IE Develper查看源代码Toolbar@pepsi600:我怎么能假设您正在使用这些工具,以及是什么生成了您正在查看的标记?只是说Ingenerated…意味着当dom就绪时,当页面加载时生成的东西…所以我当然在使用这些工具。Web开发者->查看源代码->查看生成的源代码…我认为是服务器生成了您的输出,而浏览器呈现了输出。您希望看到的是DOM初始生成后当前状态的源代码或标记。希望其他人能为您提供答案。