说我有这样的事情:
<p id="script">$("p").css("color", "red");</p>
有没有办法选择标签中包含的脚本并使用jQuery执行它?在这种情况下,脚本
$("p").css("color", "red");
将执行,然后使其自身在段落标记内以红色字体颜色呈现。我可以完美地选择文本,但还没有找到实际执行它的方法。我不想要其他解决方案 - 我知道它们,我只是想弄清楚这个具体案例是否可行,如果是的话,如何。感谢。
答案 0 :(得分:4)
eval($("#script").text())
由于它使用text()
,因此它应该删除任何HTML,以便您可以根据需要将任何代码高亮显示应用于代码。
例如,如果您使用StackOverflow代码荧光笔并想要选择代码,text()将返回您所期望的内容:
eval($("#script").text())
html()
可能会返回
<span class="kwd">eval</span><span class="pun">(</span><span class="pln">$</span><span class="pun">(</span><span class="str">"p #script"</span><span class="pun">).</span><span class="pln">text</span><span class="pun">())</span><span class="pln"><br></span>
显然无法评估。
如果您不打算执行任何代码突出显示,那么这不是问题。
答案 1 :(得分:1)
您可以在其上拨打eval()
,但我会重新评估您的方法,如下所示:
eval($("#script").html());
You can test it out here。这只是说明可以完成,但你应该尽量避免这种情况,至少它有安全性和性能问题。