Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向onDocumentReady问题添加javascript_Javascript_Jquery - Fatal编程技术网

向onDocumentReady问题添加javascript

向onDocumentReady问题添加javascript,javascript,jquery,Javascript,Jquery,我的页面上有一个div,定义如下: <div id="scripts"> </div> 我想使用jQuery动态更改div的内容并加载到一些脚本中。我是这样做的: $('#scripts').html('<script language="JavaScript">pn = "landing page"; '+ 'cms_1 = "content"; '+ 'cms_2 = "promotional "; '+ 'cms_3 = "campaign"; '

我的页面上有一个
div
,定义如下:

<div id="scripts">
</div>

我想使用jQuery动态更改div的内容并加载到一些脚本中。我是这样做的:

$('#scripts').html('<script language="JavaScript">pn = "landing page"; '+
'cms_1 = "content"; '+
'cms_2 = "promotional "; '+
'cms_3 = "campaign"; '+
'cms_s = "blk:us:dc"; '+
'cms_env = "dev"; '+
'cms_country = "USA"; '+
'<\/script>');
$('#scripts').html('pn=“登录页”;'+
“cms_1=”内容“;”+
“cms_2=”促销“;”+
“cms_3=”活动“;”+
'cms_s=“blk:us:dc”;'+
“cms_env=“dev”;”+
“cms_country=“USA”;”+
'');
这在
document.Ready
函数中。但是,当我在加载页面后查看源代码时,div显示为空,并且我没有看到脚本标记。我以为脚本没有被添加,但是当我添加
alert(“done”)到脚本。我得到一个警报,告诉我代码已经执行


为什么我在查看源代码时看不到所做的更改?源html是否在
document.ready
函数之前呈现

jquery中的
html
函数在可用时内部使用浏览器的innerHTML属性。通常,通过innerHTML插入的脚本块几乎不会在任何浏览器中执行

尝试创建包含内容的脚本标记,并将其附加到文档中,例如

var script=document.createElement('script');
script.type='text/javascript';
script.html(...);

$("#scripts").append(script);

在评论中看到您的动机后,我必须补充:尽管您可以稍后从站点中实际删除脚本标记,但这不会产生卸载其内容的效果(例如,脚本中定义的功能)。在不刷新页面的情况下实现这一点的唯一方法是封装其中定义的对象并手动删除它们。当然,这只有在脚本的内容是以这种方式预先设计的情况下才可能实现。

查看源代码,还是查看dom?这是两件完全不同的事情…你想通过这样做实现什么?为什么不把那些JavaScript语句放在构建另一个
元素的
中呢?这真的没有任何意义。我这样做是因为我希望能够替换脚本中的内容,或者基于某些事件完全删除脚本。如果我只是将脚本粘贴在页面中,我可以修改其他函数中的变量,但我想不出一种方法来完全删除脚本。@Neal,我只是查看页面源代码的原始html。这很有意义。我可能不得不重新考虑我的做法。谢谢你的帮助。