2011-05-16 77 views
1

我做了一些搜索,我認爲這應該工作,但我想我錯了。我在一個函數中使用Ajax管理器。JQuery傳遞SpanID到選擇器沒有找到元素

我的JS:通過XSL生成

function makeGetRequest2(wordId,docId) { 
    var ajaxManager = $.manageAjax.create('cacheQueue', { queue: true, cacheResponse: true }); 
    //and add an ajaxrequest with the returned object 
    ajaxManager.add({ success: function(html) { 
      $('span[id="' + docId + '"]').text(' - Downloaded ' + html + ' time(s)'); 

     }, url: '/knb/GoogleAnalytic?docId=' + wordId 
    }); 

} 

我的HTML。它迭代幾個記錄,將它列在一個表中。翻譯時,HTML看起來像這樣片段1次的記錄:

"... Download File <img alt="download" border="0" style="margin:0px 0px; padding:0px;" src="page_white_put.png"> 
<script type="text/javascript">makeGetRequest2(escape('Title 2'),'book-3'); </script> 
<span id="book-3"></span>.. " 

的想法是讓Ajax調用,並打印出span標記內的結果。 span id是可變的(從1開始 - 但是有很多記錄),並傳遞給makeGetRequest2函數。

如果我嘗試使用不帶變量的選擇器,即$('span [id =「book-3」]')。text(),那麼ajax是成功的。但是由於某種原因我沒有發現它帶有「+ docId +」。我已檢查參數是否具有正確的值。

回答

4

相反的:

$('span[id="' + docId + '"]') 

你應該使用:

$('span#' + docId) 
+0

謝謝,這是正式記錄任何地方?我從另一個論壇獲得了第一個格式,提問者說這很有效。 :( – Yun 2011-05-16 05:55:18

+0

你正在使用的是通過使用屬性進行選擇的通用方法,它也應該起作用,但是'id'和'class'是選擇元素的主要原因,所以它們具有相同的標記,它們是相同的因此,對於CSS類,您必須使用'$('#my_id')'ID和'$('。my_class')',以下是基本選擇器http://api.jquery的文檔。 COM /分類/選擇/基本-CSS選擇器/ – morgar 2011-05-16 15:22:00