JQuery .find()无法正常工作?

时间:2012-08-10 11:25:21

标签: jquery

我正在通过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());
            }
            ....

正在加载的HTML是:

<script type="text/javascript" id="startScript">
    $("#submitButton").button();
</script>

我可以看到HTML在AJAX调用中成功加载,而jqData变量显示了一个包含3个节点的数组([0]是脚本节点)。但是当我调用jqData.find(“#startScript”)时,返回始终为null。有什么想法吗?

1 个答案:

答案 0 :(得分:8)

find在节点内搜索,因此您无法真正使用它来查找顶级节点。

你可能会有更好的运气closest搜索父母和自己:

jqData.closest('#startScript')