我有一个建立反应的网络应用程序.在这个应用程序中,我也有一些页面与旧版本的jQuery代码.现在这是渲染服务器端,我必须ejs用脚本标签中的jQuery和jQuery-UI代码加载整个文件,并使用自己的导航菜单.(差不多1000行的jQuery代码)
这意味着我必须为这些jQuery页面构建另一个nav-menu.
我想在我的"内容div"中渲染这个jQuery依赖代码,所以我仍然可以使用使用react路由器的react菜单.我想把它渲染成一个组件.但我不知道这是否是最佳解决方案.
我已经阅读了很多关于如何做到这一点的例子,但我不知道他们应该选择哪一个,我一直在努力使它们发挥作用
如下例所示:将脚本标记添加到React/JSX此示例在componentWillMount中添加脚本标记
或者使用import和require这样的示例:如何在React/JSX文件中添加脚本标记?
如果不通过npm安装jQuery,我无法使这些解决方案工作.
我还没有通过npm安装jQuery,因为我知道这会影响我的应用程序其余部分的bundle大小,而我只在几个页面上使用jQuery.用户不需要为应用程序的其余部分加载jQuery
在这种情况下你会推荐什么?什么是性能和用户体验的最佳解决方案?
我在html文档中有2个.js文件,如下所示:
<script type="text/javascript" src="js/1.js"></script>
<script type="text/javascript" src="js/2.js"></script>
Run Code Online (Sandbox Code Playgroud)
那个文件也有一个iframe.我在iframe中有2个.js:
<script type="text/javascript" src="js/2.js"></script>
<script type="text/javascript" src="js/3.js"></script>
Run Code Online (Sandbox Code Playgroud)
所以2.js在两个文件中.我的计划是将它们连接起来.我不能把3.js放在两个文件中,因为它会弄乱东西.
1.js得到了一个变量.我想在3.js中使用该变量 但我无法弄清楚如何将变量从1.js传递到3.js. 这甚至可能吗?
*变量在1.js中声明.
可以说我有一个像这样的字符串:
<div id="div1"></div>
<div class="aClass" id="div2">
<div id="div3" class="anotherClass"></div>
<div id="div4" />
</div>
<div id="div5"></div>
Run Code Online (Sandbox Code Playgroud)
我想从字符串和div中的所有内容中删除div2
所以我得到了这样的字符串
<div id="div1"></div>
<div id="div5"></div>
Run Code Online (Sandbox Code Playgroud)
我想像使用正则表达式来找到id为"div2"的第一个div或者div的id是什么,并计算括号,直到它变为"</ div>".问题是"div3"最后还有一个"</ div>".
我要删除的div的内容可能包含更多或更少的div,然后这也是.
有关如何编码的任何想法?
更新:
var htmlText = editor3.getValue();
var jHtmlObject = jQuery(htmlText);
jHtmlObject.find("#div2").remove();
var newHtml = jHtmlObject.html();
console.log(newHtml);
Run Code Online (Sandbox Code Playgroud)
为什么这不会在控制台中返回任何内容?
Update2!:我已经制作了一个jsFiddle让我的问题可视化.. http://jsfiddle.net/WGXHS/