2011-07-12 10 views
0

すでにいくつかのコードを修正する必要があります。 URLを使用してJQueryリストをフィルタリングして検索入力を生成するコードブロックがあります。URLでフィルタリングするJQueryリスト

など。

http://***/store/mobile/page/productList.page?search=football 

検索バーに自動的に「フットボール」と入力します。

検索バーを使用せずにリストをフィルタリングする必要があります。

http://***/store/mobile/page/productList.page?football 

これは、検索バーを使用せずに、サッカーとのリストをフィルタリングします:

は、だから私のURLは次のようになります言うことができます。

変更する必要のあるコードは次のとおりです。私の質問が不明な場合は教えてください。

$('div[data-url*="productList"]').live("pageshow", function() { 

    filterValue = getParameterByName("search", location.search); 

    if (filterValue) { 

    $('input[data-type="search"]').val(filterValue); 
    } 

    refreshList(); 
}); 

と:

$.each(catalog.products, 
     function(index, value) { 

      if ((!filterValue) 
        || value.name.toUpperCase().indexOf(filterValue.toUpperCase()) != -1 
        || value.brand.toUpperCase().indexOf(filterValue.toUpperCase()) != -1) 

      { 
       items.push('<li id="' + index + '">' + 
         '<a data-identity="productId" href="./details.page?productId=' + index + '" >' + 
         '<img class="ui-li-thumb" src="' + value.thumbnail + '"/>' + 
         '<p>' + value.brand + '</p>' + 
         '<h3>' + value.name + '</h3>' + 
         '<span class="ui-li-count">' + value.price + ' $</span></li>') + 
       '</a>'; 
      } 

     }); 
+0

あなたがリードをトリミングする場合がありますfrom window.location.search –

答えて

2

あなたは、単に、例えば、ジャバスクリプト内のページの場所からそれを得ることができるよりも、常に?後にのみ1パラメータがあるかどう

var url = document.location; 
var params = url.split("?"); 

filterValue = params[params.length-1] 
if (filterValue) { 

    $('input[data-type="search"]').val(filterValue); 
} 

refreshList(); 

例: "?" http://jsfiddle.net/yPgPc/

+1

これは良いアプローチです。後で変更する必要がある場合は、 'filterValue'の値を変更するだけです。それがグローバルであるのを防ぐために 'var'で宣言すべきでしょうか? – StuperUser

+0

助けてくれてありがとう。今すぐ動作させようとすると、私はあなたを投稿し続けます。 – JFFF

+0

申し訳ありませんが、私はこの作業を行うことはできません。私は本当に助けに感謝しますが、あなたがもっと正確にできるなら、それはすばらしいでしょう! – JFFF

関連する問題