为什么这个JavaScript正则表达式替换了这个jQuery代码?
我需要在加载页面时运行此JavaScript:为什么这个JavaScript正则表达式替换了这个jQuery代码?,javascript,jquery,html,Javascript,Jquery,Html,我需要在加载页面时运行此JavaScript: document.body.innerHTML = document.body.innerHTML.replace(/\} \}/g, '}}'); 我还需要在加载页面时运行这个jQuery(处理我的边栏): 这适用于侧边栏(位于前面): $(文档).ready(函数(){ $(“[data toggle=offcanvas]”)。单击(函数(){ $('.row offcanvas').toggleClass('active'); }); })
document.body.innerHTML = document.body.innerHTML.replace(/\} \}/g, '}}');
我还需要在加载页面时运行这个jQuery(处理我的边栏):
这适用于侧边栏(位于
前面):
$(文档).ready(函数(){
$(“[data toggle=offcanvas]”)。单击(函数(){
$('.row offcanvas').toggleClass('active');
});
});
但如果我像这样添加正则表达式行:
<script>$(document).ready(function() {
$('[data-toggle=offcanvas]').click(function() {
$('.row-offcanvas').toggleClass('active');
});
document.body.innerHTML = document.body.innerHTML.replace(/\} \}/g, '}}');
});</script>
$(文档).ready(函数(){
$(“[data toggle=offcanvas]”)。单击(函数(){
$('.row offcanvas').toggleClass('active');
});
document.body.innerHTML=document.body.innerHTML.replace(/\}\}/g,'}}');
});
正则表达式工作,但边栏位停止工作。这是因为我混合了JavaScript和jQuery吗?如何修复此问题?您正在替换文档正文,因此绑定丢失
$(document).ready(function() {
// change body
document.body.innerHTML = document.body.innerHTML.replace(/\} \}/g, '}}');
// then bind to new body
$('[data-toggle=offcanvas]').click(function() {
$('.row-offcanvas').toggleClass('active');
});
});
您正在替换文档正文,因此绑定丢失
$(document).ready(function() {
// change body
document.body.innerHTML = document.body.innerHTML.replace(/\} \}/g, '}}');
// then bind to new body
$('[data-toggle=offcanvas]').click(function() {
$('.row-offcanvas').toggleClass('active');
});
});
也许是一个更干净的方法,它基于您的澄清注释,即您只想替换class
my content
元素中的双括号:
$('.my-content').text().replace(/\} \}/g, '}}');
也许是一个更干净的方法,它基于您的澄清注释,即您只想替换class
my content
元素中的双括号:
$('.my-content').text().replace(/\} \}/g, '}}');
这感觉像是一场灾难。你为什么要运行那个正则表达式?这看起来像是一些转义的JSON或类似的东西,可以用另一种方式更好地处理……不,这是因为您正在用新内容替换页面内容。新内容没有事件处理程序。这不是一种很好的方法,无论你想做什么。“这是因为我混合了Javascript和jQuery吗?”jQuery是Javascript。
document.body.innerHTML=…
替换了正文中的所有内容,删除了事件处理程序和几乎所有内容else@Garry,听起来站点生成器希望使用双大括号指定的模板标记。你可以在站点生成器上关闭它。这感觉像是一个。你为什么要运行那个正则表达式?这看起来像是一些转义的JSON或类似的东西,可以用另一种方式更好地处理……不,这是因为您正在用新内容替换页面内容。新内容没有事件处理程序。这不是一种很好的方法,无论你想做什么。“这是因为我混合了Javascript和jQuery吗?”jQuery是Javascript。document.body.innerHTML=…
替换了正文中的所有内容,删除了事件处理程序和几乎所有内容else@Garry,听起来站点生成器希望使用双大括号指定的模板标记。您可以在站点生成器上关闭该选项。非常感谢。非常好,非常感谢。工作完美。