我正在通过 AJAX 从文件加载一些 HTML,尝试额外的块并对其进行评估(动态 HTML/JS 加载)。
AJAX 调用是:
$.ajax({ url: 'module.html', type: 'GET', complete: function(xhr, textStatus) { //called when complete }, success: function(data, textStatus, xhr) { var jqData = $(data); var scriptNode = jqData.find("#startScript"); if (scriptNode.length > 0) { $.globalEval(scriptNode.html()); } ....
The HTML being loaded is:
<script type="text/javascript" id="startScript">
$("#submitButton").button();
</script>
我可以看到在 AJAX 调用中成功加载了 HTML,并且 jqData 变量显示了一个包含 3 个节点的数组([0] 是脚本节点)。但是当我调用 jqData.find("#startScript") 时,返回始终为空。有任何想法吗?
最佳答案
find
在节点内搜索,因此您不能真正使用它来查找顶级节点。
使用 closest
搜索 parent 和自我可能会更好:
jqData.closest('#startScript')
关于JQuery .find() 不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11900678/