2015-01-16 35 views
0

我有一個頁面可以從異地資源中獲取信息,並將信息附加到頁面上。這是一個大量的數據,它需要幾分鐘才能收集並追加所有數據。如何使用js/jquery搜索先前追加的文本

我使用ajax來提取數據,jQuery的.append()發佈到我的頁面。然後我有另一個功能,我可以觸發一個搜索詞,並查看整個身體匹配的單詞和計數總匹配。

我意識到我採取的搜索DOM外部數據的方法存在根本性錯誤,但我願意接受其他方法。

我的搜索功能是這樣的:

function qtySearch(){ 
    var term = $('.qtySearch').val(); 
    var termRegex = new RegExp ("\\b" + term + "\\b", "gi"); 
    var matchRez = $(document.body).text().match (termRegex); 
    var termCount = matchRez ? matchRez.length : 0; 

    var countReport = ""; 
    switch (termCount) { 
      case 0: 
       countReport = '"'+term+'" was not found!' 
      break; 
      case 1: 
       countReport = '"'+term+'" was found one time.' 
      break; 
      default: 
       countReport = '"'+term+'" was found ' + termCount + ' times.' 
      break; 
    } 

    $("#searchResults").text(countReport); 
} 

爲了詳細說明,上面的代碼確實工作搜索已經顯示在頁面加載的所有元素。但是,它無法匹配頁面加載後通過.append()繪製的任何條款。

+0

你在描述所有理論上的工作 - 什麼是不工作? – Rhumborl

+1

像這樣使用正則表達式可能很難,你需要轉義所有*表示*正則表達式的字符。 –

+0

有(可能)有一個小的錯字:你聲明'coutReport'而不是'countReport',雖然我不確定這是否是實際問題。 – icke

回答

0

Karl-AndréGagnon,謝謝!有時我看不到樹林。在追加過去之後,我遇到了訪問信息的問題,並認爲這是相同的。

實際上,我對文本進行格式化的方式禁止我在正則表達式的任一側使用沒有任何分詞來識別整個單詞。如果這個詞是第一個或最後一個詞,它就根本沒有返回它。最終,我不確定附錄是否阻止它拾起胡蘿蔔,或者只是我在搜索頁面文本的事實,但是在調整正則表達式之後,它正在工作。