javascript / jquery:需要在jquery中使用substring

时间:2013-12-24 02:49:37

标签: javascript jquery ajax

<script type="text/javascript">
$(function(){
  $("a[rel='tab']").click(function(e){
    e.preventDefault();

    pageurl = $(this).attr('href');

    $.ajax({url:pageurl+'?rel=tab',success: function(data){
      $('#right_column').html(data);
    }});

    if(pageurl!=window.location){
      window.history.pushState({path:pageurl},'',pageurl);
    }

    return false;
  });
});
</script>

以前的代码是我用来在rel="tab"标记内点击<a>链接时使用内容更新div元素的内容。

示例<a>标记:

<a href="index.php?v1=variable1&v2=variable2" rel="tab">Click Here</a>

所以现在,我需要更新上面javascript代码的以下几行,将index.php从链接中分出来...

 $.ajax({url:pageurl+'?rel=tab',success: function(data){
          $('#right_column').html(data);
        }});

但需要将javascript的最后一部分的完整网址保留为pageurl。

我该怎么做?

我对此进行了研究并尝试实施此处列出的答案:How to substring in jquery 但似乎无法让它发挥作用。

3 个答案:

答案 0 :(得分:2)

看起来你想要这样做,虽然我不确定为什么。

$.ajax({url:pageurl.replace('index.php', '') +'&rel=tab' ...

请注意concat上的&而非?,因为该网址已有?

答案 1 :(得分:1)

我认为你想要没有查询字符串的URL。

$.ajax({
    url: pageurl.split('?')[0]+'?rel=tab',
    success: function(data) { $('#right_column').html(data); }
});

这会将字符串拆分为问号,从而创建一个数组。数组的第一个元素是问号前面的字符串的一部分。如果没有问号,它将是整个字符串。

答案 2 :(得分:0)

如果您只想要href属性中的查询字符串,请尝试使用

var ajaxUrl = this.search + (~this.search.indexOf('?') ? '&' : '?') + 'rel=tab';
$.ajax({
    url: ajaxUrl,
    // ...