0

私はロケーションhrefリンクから値を取得しようとしていますが、jqueryを介してロケーションhrefリンクを取得できました。

   var loc =$(location).attr('href');  

これを使って私は価値を得ました

   localhost/example.com/buy.php?ev=product_search&type=sb&search=sony&cat=3

このリンクからタイプ、検索、猫の値を取得するために今ホットですか?

例えば

      type=sb
      search=sony
      cat=3

私の完全なコード

 $("input:radio[name=type_radio]").click(function() {
 var loc =$(location).attr('href');

var value = $(this).val();
var type="condition";
alert(loc);
var dataString="value="+ value + "&type=" + type;
   $('.srchcntntagn').css('display','block');
     $('.by-product-list').addClass('opfxsc');
  $.ajax({
  type: "POST",
  url: "modules/buy&sell/load_search.php",
  data: dataString,
  cache: false,

  success: function(html){
  $('.by-product-list').removeClass('opfxsc');
  $('.by-product-list').html(html).fadeIn('slow');
  $('.srchcntntagn').css('display','none');
 }
});
}); 
4

3 に答える 3

3

私は通常、ここにあるこの「gup」関数を使用します:http: //www.netlobo.com/url_query_string_javascript.html

スクリプトに関数を追加して、次のようにします。

var type = gup( 'type' );

これにより、.attr('href')呼び出しでURLを取得する必要もなくなります。

関数自体は次のとおりです。

function gup( name )
{
 name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
 var regexS = "[\\?&]"+name+"=([^&#]*)";
 var regex = new RegExp( regexS );
 var results = regex.exec( window.location.href );
 if( results == null )
  return "";
else
 return results[1];
}
于 2012-08-01T17:03:38.137 に答える
1

location.searchURLのクエリ文字列(?を含む)を提供します。

あなたは?を取り除くことができます 文字列を上の配列に分割します&

var queries = location.search.substr(1).split('&');

現在のURLではない文字列を使用している場合は、次のことを試してください。

var queries = some_url_string.split('?')[1].split('&');

どちらも次のような配列を提供します。

['type=sb','search=sony','cat=3']

次に、各要素を再度分割し=て、キーと値のペアを取得できます。

for(i=0;i<queries.length;i++) {
  queries[i] = queries[i].split('=');
}

それはあなたに与えるでしょう:

[['type','sb'],['search','sony'],['cat','3']]

または、クエリオブジェクトを作成します。

var queryObj = {};
for(i=0;i<queries.length;i++) {
  var q = queries[i].split('=');
  queryObj[q[0]] = q[1];
}

これにより、次のようなオブジェクトが得られます。

{
  type: 'sb',
  search: 'sony',
  cat: '3'
}

ただし、本当に個々の変数が必要な場合は、次のようにすることができます。

for(i=0;i<queries.length;i++) {
  var q = queries[i].split('=');
  window[q[0]] = q[1];
}

これにより、変数、、、およびがグローバルスコープに作成さtypesearchますcatただし、解析しているクエリ文字列によっては既存の変数を上書きする可能性があるため、これはお勧めしません。

于 2012-08-01T16:59:02.297 に答える
1

すばやく簡単-

  1. 最初にURL全体を疑問符で分割して、クエリをURLから分離します
  2. 次に、を使用してクエリ文字列を分割します&
  3. 各要素をさらに分割すると、値からキーがスピアシングされます。
var url="localhost/example.com/buy.php?ev=product_search&type=sb&search=sony&cat=3";
var queryString = url.split('?')[1];
var variables = queryString.split('&');
var varObj = {};
$.each(variable,function(index,elem){
  var valueKeyPair = elem.split('=');
  varObj[valueKeyPair[0]] = valueKeyPair[1];
});

varObjこれで、必要なすべての情報が含まれます。

Object
  cat: "3"
  ev: "product_search"
  search: "sony"
  type: "sb"

catたとえば、値にアクセスするには、を使用するだけvarObj['cat']です。

于 2012-08-01T17:00:56.763 に答える