web-dev-qa-db-ja.com

jQueryを使用してURLを取得し、URLセグメントを抽出します

カテゴリのリストがあり、各カテゴリのタイトルが次の形式でリンクされているWebページ:http://localhost/admin/category/unpublish/2

次のjsコードを記述し、URLとセグメント「unpublish」(アクション)と「2」(id)をキャプチャしようとしましたが、リクエストをhttp://localhost/admin/categoryに送信する必要があります。

$('#statusChanges a').click(function(evt) { // use the click event of hyperlinks
  evt.preventDefault();
  var url = $(location).attr('href');
  // var action = url.segment(3);  /*JS console complains that url.segment() method undefined! */
  // var id = url.segment(4);
  $.ajax({
    type: "GET",
    url: $(location).attr('href'),
    dat: '',
    /* do I need to fill the data with json data: {"action": "unpublish, "id": 2 } ? but I don't know how to get the segments */
    success: function(data) {
      $('.statusSuccess').text('success!');
    },
    error: function(data) {
      $('.statusSuccess').text('error!');
    }
  });
}); // end of status change
7
TonyGW

これを試して

var url = $(location).attr('href').split("/").splice(0, 5).join("/");

回答の更新:

現在のアンカーリンクを取得するためのユーザーthisオブジェクトは以下を参照してください

$(this).attr('href')
12
Girish

最初にURLをセグメントに分割します。

var segments = url.split( '/' );
var action = segments[3];
var id = segments[4];
7
DJ_Polly

split を使用できると思います。次に、アクションとIDを取得できる配列を使用できます。

1