AJAX搜索 - 没有结果返回最后一行

时间:2013-04-27 12:06:58

标签: javascript xml ajax jquery

我正在尝试实现一个搜索框,该搜索框将搜索特定游戏(AJAX文件)以查找该单词的任何实例,如果找到该单词,则输出该行。我的问题是,如果没有找到该单词的结果而不是继续显示整个播放,则它仅输出该剧的最后一行。

我的功能:

function searchResults(query) {        
  var temp = "\\b" + query + "\\b";         
  var regex_query = new RegExp(temp, "gi"); 
  var currentLine;
  var num_matching_lines = 0;
  $("#mainOutput").empty();
  $("LINE", current_play_dom).each(function () {
    var line = this;
    currentLine = $(this).text();           
    matchesLine = currentLine.replace(regex_query, '<span class="query_match">' + query + '</span>');
    if ( currentLine.search(regex_query) > 0 ) {
      num_matching_lines++ 
      $("#mainOutput").append("<br /><p class='speaker_match'>"+  $(line).parent().find('SPEAKER').text() +"</p>");
      $("#mainOutput").append("<p class='act_match'>"+  $(line).parent().parent().parent().children(':first-child').text()+"</p>");
      $("#mainOutput").append("<p class='scene_match'>"+  $(line).parent().parent().children(':first-child').text() +"</p>");
      $("#mainOutput").append("<p>" + matchesLine + "</p>");
      $("#mainOutput").append("<br>");
    }   
  });
  $("#mainOutput").append("<p>" + matchesLine + "</p>");
  $("#sideInfo").append("<p>Found " + query + " in " + num_matching_lines + " lines</p>");
}

另外,作为一个侧面问题,有一个更简洁的方法来做到这一点: $(line).parent().parent().parent().children(':first-child')

0 个答案:

没有答案