0

リンクの ?p= の後の最後の文字を取得して変数に入れようとしていますが、使用しているコードは / を返します。

私のコードは次のとおりです。

 $("#dvPartial").on('click', '.dvPagerCities a', function (event) {
        alert('click detected');
        var city = ($('input#hdnCountry').val());
        alert(city);
        var link = $('a').attr('href');
        //var getEqualPosition = link.indexOf('?p='); //Get the position of '='
        var getEqualPosition = link.indexOf('='); //Get the position of '='
        var number = link.substring(getEqualPosition + 1); //Split the string and get the number.

私のリンクは

<a href="/Weather/Index/Australia?p=2">»</a>

起こっているのは、最初の = を拾っていると思います。

私の理論はこれです。

1) クリックイベントを検出する

2) イベントの原因となったリンクを取得する

3) p の値を抽出し、

p は、1 桁、2 桁、または 3 桁のいずれかです。

1つの問題を解決するとすぐに別の問題が発生するように見えるので、どんな助けもいただければ幸いです。

ありがとう

ジョージ

4

5 に答える 5

1

問題はこの部分です:

var link = $('a').attr('href');

ページの HTML にある最初のリンクをクリックしない限り、クリックされたリンクは選択されません。それが行うことは、すべての 要素を選択してから、最初の要素の属性を<a>返すことです。href

イベント ハンドラー内で、thisクリックされたリンクを参照するために使用します。

var link = $(this).attr('href');
// or simply
var link = this.href;
于 2013-02-07T11:20:29.340 に答える
1

これが URL 内の唯一のパラメーターであると仮定すると、記号pで単純に分割できます。=

$("#dvPartial").on('click', '.dvPagerCities a', function (event) {
    var city = $('input#hdnCountry').val();
    var number = $(this).attr('href').split('=')[1];
});
于 2013-02-07T11:04:58.737 に答える
0
String s = "ジェシー ペニー ? シアーズのように";

String[] arr = s.split("\\?");  

? の前に \\ を ? として追加 特別な意味を持つ

文字列 res = arr[0];

' のエスケープ文字が間違っている可能性があります。'

このリンクを確認してください特定の文字の後のすべての文字を削除します

于 2013-02-07T11:20:27.550 に答える
0

これを試してください:http://jsfiddle.net/7atyG/1/

$(document).on('click', '.dvPagerCities a', function (ev) {
   ev.preventDefault();
   var link = $(this).attr('href');
   var Linkval = link.substr(link.indexOf('=') + 1);
   alert(Linkval);
});
于 2013-02-07T11:14:29.163 に答える
0

これを試してください:

link.split('?p=')[1]

于 2013-02-07T11:08:46.527 に答える