2012-08-10 106 views
3

我正在通過AJAX從文件中加載一些HTML,試圖額外添加一個塊並對其進行評估(動態HTML/JS加載)。JQuery .find()不工作?

的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」)時,返回值始終爲空。有任何想法嗎?

回答

6

find搜索之內的一個節點,所以你不能真的用它來找到頂層節點。

你可能有更好的運氣與closest其搜索的父母和自我:

jqData.closest('#startScript') 
+0

謝謝,試過首先找到()的編輯之前並沒有工作。最接近的功能是訣竅! – 2012-08-10 11:42:29

+0

@MeshMan:是的,我也注意到了:) – 2012-08-10 11:48:24

+0

@david我愛你。 – g33kz0r 2015-01-29 13:41:26