【问题标题】:How to change html anchor tag query string如何更改html锚标记查询字符串
【发布时间】:2018-11-25 03:59:20
【问题描述】:

已知带有querystring参数的URL可以改写为.htaccess.例如

localhost/mynews/category.php?cat=news&subcat=9

localhost/mynews/news/9

但是有没有办法自定义anchor tag

<a href="category.php?cat=news&subcat=9"></a>

hovering 链接时显示在左下角。

localhost/mynews/category.php?cat=news&subcat=9

localhost/mynews/news/9

PHP、jquery/javascript 或 htaccess,我们可以通过什么方式自定义?

【问题讨论】:

  • 好吧,你可以使用 javascript 来更改页面上每个锚标记的 href 属性。
  • 你必须在你的应用程序中这样做。不,不知道您的 .htaccess 中的条目会更改生成的标记
  • 你的链接首先应该是这样的:&lt; a href="/mynews/news/9"&gt; - 否则你实现从/mynews/news/9category.php?… 的重写是没有意义的!你需要在你的 HTML 中改变它,resp。创建它的逻辑。

标签: php jquery html .htaccess anchor


【解决方案1】:

hover 上,您可以获取锚点href 获取querystring 值重建url 并在锚标记中使用attr 设置新的url

var link = '';
$("a").hover(function() {
  link = $(this).attr('href');
  var var1 = $.urlParam('cat', link);
  var var2 = $.urlParam('subcat', link);
  var url = link.split('?')[0] + '/' + var1 + '/' + var2;
  $(this).attr('href', url);

}, function() {
  $(this).attr('href', link);
});
$.urlParam = function(name, link) {
  var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(link);
  if (results == null) {
    return null;
  } else {
    return decodeURI(results[1]) || 0;
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="category.php?cat=news&subcat=9">Hover Me</a>

注意:我从https://stackoverflow.com/a/25359264/965146 中获取了urlParam 函数并对其进行了轻微修改。其余代码是我的。您必须重置您的 url 当锚点点击可能路由没有获得您的新 url

【讨论】:

  • 谢谢,我试过了,在代码 sn-p 中运行时,它第一次工作,但第一次之后每次/null/ 在悬停时添加。我以为是浏览器cache 的问题,但是clearing cache 并尝试在other browsers 中,仍然是同样的问题
  • @AnandHmt 因为当鼠标移出时我没有重置您的网址,所以查询字符串为空。查看更新的答案。鼠标移出时我会重置您的网址。
  • 非常感谢,这行得通,但我的要求是localhost/mynews/news/9(我在htaccess中设置了这个网址),但我有额外的category.php你的回答localhost/category.php/mynews/news/9。如何删除category.php
  • 从 var url = link.split('?')[0] + '/' + var1 + '/' + var2; 中删除 link.split('?')[0] +
猜你喜欢
  • 1970-01-01
  • 2013-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-23
相关资源
最近更新 更多