Javascript 使用jquery访问脚本块
我在div元素中有一个脚本块,它附加在html响应之后。我想访问此块并为此脚本调用eval()函数。如何访问脚本块 我尝试了Javascript 使用jquery访问脚本块,javascript,jquery,Javascript,Jquery,我在div元素中有一个脚本块,它附加在html响应之后。我想访问此块并为此脚本调用eval()函数。如何访问脚本块 我尝试了$(“#divId script”),但不起作用 <div id="divId"> <script type="text/javascript"> // some code here </script> </div> //这里有一些代码 不确定为什么它在jQuery中不起作用,但普通DOM应该可以
$(“#divId script”)
,但不起作用
<div id="divId">
<script type="text/javascript">
// some code here
</script>
</div>
//这里有一些代码
不确定为什么它在jQuery中不起作用,但普通DOM应该可以
$(document.getElementById('divId').getElementsByTagName('script')[0])
不确定为什么它在jQuery中不起作用,但普通DOM应该可以起作用
$(document.getElementById('divId').getElementsByTagName('script')[0])
如果你不信任我,点击
如果您不信任我,请单击$(“#divId script”)
可以很好地选择元素,但问题是:$(“#divId script”).text()
在IE中不起作用,因为jQuery没有设置为处理脚本元素中文本节点的跨浏览器差异
IE要求您访问脚本元素的.text属性,其他浏览器要求您访问.textContent。以下是我的作品:
var scr = $("#divId script")[0],
txt = "textContent" in scr ? scr.textContent : scr.text;
eval(txt);
$(“#divId script”)
可以很好地选择元素,但问题是:$(“#divId script”).text()
在IE中不起作用,因为jQuery没有设置为处理脚本元素中文本节点的跨浏览器差异
IE要求您访问脚本元素的.text属性,其他浏览器要求您访问.textContent。以下是我的作品:
var scr = $("#divId script")[0],
txt = "textContent" in scr ? scr.textContent : scr.text;
eval(txt);
加载页面时,div中的脚本不是已经“激活”了吗?我想知道为什么在你可以从页面的任何地方调用这个脚本中的函数和/或变量之后,你必须访问这个脚本…它在被附加后会自动“eval'd”。如果要在
中多次执行代码,则应将其包装在函数语句中我告诉了原因,我将调用eval()。如果必须调用eval才能使用脚本,为什么必须将其放入脚本标记中?它是否使脚本已经可以在文档的任何地方调用?当页面加载时,div中的脚本不是已经“激活”了吗?我想知道为什么在你可以从页面的任何地方调用这个脚本中的函数和/或变量之后,你必须访问这个脚本…它在被附加后会自动“eval'd”。如果要在
中多次执行代码,则应将其包装在函数语句中我告诉了原因,我将调用eval()。如果必须调用eval才能使用脚本,为什么必须将其放入脚本标记中?这难道不能让脚本在本文档的任何地方都可以调用吗?penguru,请仔细阅读jQuery是什么。。。它不是普通DOM方法的替代品,而是一个扩展。你可以将两者完美地结合在一起(如果你能跟踪你正在做的事情)。如果Jhong的方法有效,只需将其包装在$()
中即可。如果这不是问题的话。。。嗯,不是,P.S.@penguru我同意其他人的看法,你不需要这么做。。。我只是提供了您要求的解决方案。penguru,请仔细阅读jQuery是什么。。。它不是普通DOM方法的替代品,而是一个扩展。你可以将两者完美地结合在一起(如果你能跟踪你正在做的事情)。如果Jhong的方法有效,只需将其包装在$()
中即可。如果这不是问题的话。。。嗯,不是,P.S.@penguru我同意其他人的看法,你不需要这么做。。。我只是提供您要求的解决方案。