【问题标题】:How to remove a query string parameter from the url using jquery?如何使用 jquery 从 url 中删除查询字符串参数?
【发布时间】:2018-04-20 01:40:05
【问题描述】:

我正在尝试遍历几个 iframe 以获取 iframe 的 src 并从这些 iframe 的 src 中删除特定的查询字符串。这是我目前所拥有的:

$(document).ready(function() {
   $('iframe').each(function() {
      var $src = $(this).attr('src').substring(0, $(this).attr('src').indexOf('&id'));
      alert($src);
   });
});
iframe {
  width: 300px height:300px;
  background: #fafafa;
  margin: 20px auto;
  display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<iframe src="mysite.com/program.asp?name=abc&status=3&id=2"></iframe>
<iframe src="mysite.com/program.asp?id=2"></iframe>

iframe 的第一个 url 显示正确,但第二个 iframe 的第二个 url 没有。

预期输出:

first iframe - mysite.com/program.asp?name=abc&status=3
second iframe - mysite.com/program.asp?

【问题讨论】:

  • 在第二个函数中,indexOf 返回 -1,因此您计算的是一个空字符串 substring(0, -1)。看起来很正常,但它不起作用
  • this.src 应该可以访问。我不知道你为什么在那里做 jQuery。
  • 您正在寻找专门的 &amp;id= 但第二个是 ?id= - 您需要使用正则表达式:[&amp;?]id=(或调用 replace 两次)。
  • 你也有有限的用例,例如如果你有:?status=3&amp;id=2&amp;name=abc,那么你应该得到?status=3&amp;name=abc,但你得到?status=3。我建议只使用链接副本中的各种选项之一。

标签: jquery iframe


【解决方案1】:

更新 2017 年 11 月 7 日下午 1:12

我能够回答我自己的问题并弄清楚,但感谢您的帮助和 cmets。这是我之前提到的预期输出。谢谢大家。

$(document).ready(function() {
   $('iframe').each(function() {
      if($(this).attr('src').indexOf('&id') > -1){
        var $src = $(this).attr('src').substring(0, $(this).attr('src').indexOf('&id'));
      }else{
        var $src = $(this).attr('src').substring(0, $(this).attr('src').indexOf('id'));
      }
      alert($src);
   });
});

$(document).ready(function() {
   $('iframe').each(function() {
      if($(this).attr('src').indexOf('&id') > -1){
        var $src = $(this).attr('src').substring(0, $(this).attr('src').indexOf('&id'));
      }else{
        var $src = $(this).attr('src').substring(0, $(this).attr('src').indexOf('id'));
      }
      alert($src);
   });
});
iframe {
  width: 300px height:300px;
  background: #fafafa;
  margin: 20px auto;
  display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<iframe src="mysite.com/program.asp?name=abc&status=3&id=2"></iframe>
<iframe src="mysite.com/program.asp?id=2"></iframe>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 2019-01-14
    • 2019-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多