2017-03-09 42 views
0

我是jQuery的新手,我想了解一些代碼,以便能夠在課程中應用類似的概念。var dataString = 'search = '+ searchid; - jquery

$(function(){ 
    $(".search").keyup(function() { 
     var searchid = $(this).val(); 
     var dataString = \'search=\'+ searchid; 
     if(searchid!=\'\') { 
     } 
    }); 
})(jQuery); 

什麼是dataString變量試圖做什麼?

+0

被其他腳本或服務器端語言該輸出代碼?它看起來像整個代碼可能會寫在某處的文本文字 - 如果是這種情況,並且單引號用作字符串分隔符,那麼它內部的單引號需要以這種方式逃脫。 – CBroe

回答

2

這段代碼中有很多東西看起來「關閉」,我將在下面介紹這些代碼。

這段代碼在做什麼?

它看起來像一些基本的功能,可能被用來建立一個搜索查詢字符串,傳遞到一些AJAX請求,將搜索服務器上的東西。

基本上,您需要構建一個看起來像search={your-search-term}的字符串,在發佈到服務器時,搜索字詞{your-search-term}可以很容易地識別並用於搜索。

注意到代碼問題

如前所述,還有,你可能要考慮改變一些問題:

  • 轉義引號的使用(即\' - 真的你不因爲它們不存在於現有的字符串中,所以不需要這些。既然你只是建立一個字符串,只需用一個正常的'代替它們。如果不瞭解更多有關完整情景的信息,很難就此進一步提供建議。
  • 檢查字符串長度 - 現有的代碼再次檢查,如果searchId是一個空字符串,但您可能要考慮檢查長度,看它是否通過searchId.length != 0就是空的,你也可以修剪這個問題,以及(即searchId.trim().length != 0)。
  • 考慮延遲(可選) - 目前,您每次按下某個按鍵時都會執行當前代碼,根據您的需要它可能是好的(或不好的)。如果您打算訪問服務器,您可能會考慮在代碼中添加延遲,以確保用戶在點擊服務器之前停止鍵入。

你可以看到一些變化在註釋的代碼片斷如下實施的:

// This is a startup function that will execute when everything is loaded 
$(function() { 
    // When a keyup event is triggered in your "search" element... 
    $(".search").keyup(function() { 
     // Grab the contents of the search box 
     var searchId = $(this).val(); 
     // Build a data string (i.e. string=searchTerm), you didn't previously need the 
     // escaping slashes 
     var dataString = 'search=' + searchId; 
     // Now check if actually have a search term (you may prefer to check the length 
     // to ensure it is actually empty) 
     if(searchId.length != 0) { 
      // There is a search, so do something here 
     } 
    } 
}