如何使用jQuery从页面链接中删除变量

如何使用jQuery从页面链接中删除变量,jquery,Jquery,只是我有一堆这样的链接 <div id="categoryLinks"> <a href="blah.php?something=this&category=21"></a> <a href="blah.php?something=that&category=21"></a> <a href="blah.php?something=then&category=21"></

只是我有一堆这样的链接

<div id="categoryLinks">
    <a href="blah.php?something=this&category=21"></a>
    <a href="blah.php?something=that&category=21"></a>
    <a href="blah.php?something=then&category=21"></a>
</div>
我知道如何做相反的事情,那就是在href中添加一个类别,但就去掉它而言,我画的是一个空白


如何执行此操作?

这将删除所有参数

$('a[href*=?]').each(function () {
    var href = $(this).attr('href');
    $(this).attr('href', href.substring(0, href.indexOf('?'));
});
这将剥离特定的一个

$("a[href*='category=']").each(function () {
    var href = $(this).attr('href');
    $(this).attr('href', href.replace(/&?category=\d+/, ''));
});

a[href*='category=']
a
标记的
href
属性中查找
category=
字符串。然后这个属性以及相应的值被替换为空字符串。

这是一个很好的方法,特别是对于正则表达式。2注意事项-在选择带有“=”等字符的属性(或部分属性)时,应该使用引号,也许可以解释一下代码的工作原理。jQuery属性选择器在没有引号的情况下也可以工作。@cosmicbdog您对JS变量知之甚少,是吗?哈。不,不是真的。嘿,这是工作的待遇,但似乎在IE上的用户报告它不工作。上述代码与internet explorer是否存在任何兼容性问题?不应该存在。你有关于这个问题的更多细节吗?
$('a[href*=?]').each(function () {
    var href = $(this).attr('href');
    $(this).attr('href', href.substring(0, href.indexOf('?'));
});
$("a[href*='category=']").each(function () {
    var href = $(this).attr('href');
    $(this).attr('href', href.replace(/&?category=\d+/, ''));
});