我正在通过 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/

10-12 07:40
查看更多