在链接中?=之后提取字符

时间:2013-02-07 10:58:52

标签: javascript jquery ajax

任何人都可以看到我在这里出错的地方,我正试图在链接之后获取最后一个字符?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个diget,2个digets或3个digets。

任何帮助都会受到赞赏,因为我似乎不久就解决了1个问题,然后又出现了另一个问题。

由于

乔治

5 个答案:

答案 0 :(得分:1)

假设p是网址中唯一的参数,您只需按=符号进行拆分:

$("#dvPartial").on('click', '.dvPagerCities a', function (event) {
    var city = $('input#hdnCountry').val();
    var number = $(this).attr('href').split('=')[1];
});

答案 1 :(得分:1)

问题在于这一部分:

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

选择已点击的链接,除非您恰好点击了网页HTML中的第一个链接。这样做会选择所有 <a>元素,然后返回第一个元素的href属性。

在您的事件处理程序中,您希望使用this来引用所点击的链接:

var link = $(this).attr('href');
// or simply
var link = this.href;

答案 2 :(得分:0)

试试这个:

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

答案 3 :(得分: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);
});

答案 4 :(得分:0)

String s = "Jecy penny ? like sears";

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

Added \\ before ?, as ? has a special meaning

String res = arr[0];

你可能在逃避角色时错了吗? “

点击此链接Remove all characters after a particular character