Javascript 替换正文,但不替换其中的脚本? 布拉布拉 无稽之谈 ....
我想替换body的所有内容,但保留script标记和script标记中的内容不变 如果我执行Javascript 替换正文,但不替换其中的脚本? 布拉布拉 无稽之谈 ....,javascript,jquery,html,Javascript,Jquery,Html,我想替换body的所有内容,但保留script标记和script标记中的内容不变 如果我执行$('body').html('hello'),它将替换整个内容,因此看起来像: <body> <div>blabla</div> <div>blabla2</div> <script> .... </script> </body> <body> <s
$('body').html('hello')
,它将替换整个内容,因此看起来像:
<body>
<div>blabla</div>
<div>blabla2</div>
<script>
....
</script>
</body>
<body>
<span>hello</span>
</body>
你好
但我希望它看起来像:
<body>
<div>blabla</div>
<div>blabla2</div>
<script>
....
</script>
</body>
<body>
<span>hello</span>
</body>
你好
...
基本上,除了脚本,所有的内容都被替换掉了。这可能吗?请尝试使用以下代码:
<body>
<span>hello</span>
<script>...</script>
</body>
$('body').html('hello'+$('body script').html();
尝试使用以下代码:
<body>
<span>hello</span>
<script>...</script>
</body>
$('body').html('hello'+$('body script').html();
如果您知道您的脚本是body元素中的最后一个脚本(通常是这样),您可以这样做:
$('body').html('<span>hello</span><script>'+$('body script').html()+'</script>');
$(“body*:not(script:last)”).remove();
$(“body”)。前置($(“Test!”);
Fiddle:如果您知道您的脚本是body元素中的最后一个脚本(通常是这样),您可以这样做:
$('body').html('<span>hello</span><script>'+$('body script').html()+'</script>');
$(“body*:not(script:last)”).remove();
$(“body”)。前置($(“Test!”);
Fiddle:如果你在正文中替换整个html,显然它会删除其中的每一个内容 最好的方法是在单独的变量中定义脚本,然后替换主体,然后在主体中附加该变量
$("body *:not(script:last)").remove();
$("body").prepend($("<div>Test!</div>"));
var scriptHtml=$('body')。查找('script');
$('body').html('hello');
$('body').append(scriptHtml);
如果你在正文中替换整个html,显然它会从正文中删除所有内容
最好的方法是在单独的变量中定义脚本,然后替换主体,然后在主体中附加该变量
$("body *:not(script:last)").remove();
$("body").prepend($("<div>Test!</div>"));
var scriptHtml=$('body')。查找('script');
$('body').html('hello');
$('body').append(scriptHtml);
只需找到div并删除
var scriptHtml = $('body').find('script');
$('body').html('<span>hello</span>');
$('body').append(scriptHtml);
$('body').prepend('hello').find(“div”).remove();
只需找到div并删除
var scriptHtml = $('body').find('script');
$('body').html('<span>hello</span>');
$('body').append(scriptHtml);
$('body').prepend('hello').find(“div”).remove();
您可以将remove()
方法与:not()
类似的选择器一起使用
$(document.body).find(':not(script)').remove();
//身体是干净的。想做什么就做什么。
var-test1;
你好
var测试2;
你好
您可以将remove()
方法与:not()
选择器一起使用
$(document.body).find(':not(script)').remove();
//身体是干净的。想做什么就做什么。
var-test1;
你好
var测试2;
你好
您
最好在正文
中有一个包装器
,谢谢,但我正在寻找一个不引入任何其他div的解决方案。请将您的脚本放在
中。正文中不得保留任何脚本。说来话长。@foreyez,即使在.html()
之后,脚本仍然在运行!最好在正文
中有一个包装器
,谢谢,但我正在寻找一个不引入任何其他div的解决方案。请将脚本放在
中。正文中不得保留任何脚本。说来话长。@foreyez,即使在.html()
之后,脚本仍然在运行!