0

我有以下链接:

<ul id="countrySelect">
<ul>
<li><a href="setlocale.aspx?returnURL=Default.aspx&amp;localesetting=en-US">EN</a></li>
</ul>

<ul>
<li><a href="setlocale.aspx?returnURL=Default.aspx&amp;localesetting=cs-CZ">CZ</a></li>
</ul>
<!-- END COUNTRY SELECT LIST -->
<p></p>
</ul>

我想Default.aspx从 returnURL 中删除并将其替换为用户所在的当前页面。这是我尝试过的,但不确定它是否正确?

var pathname = window.location.pathname;
var countryArr = [];
var $ul = $('<ul id="countrySelect"/>');

countryArr = $('ul#countrySelect ul li a').map(function() {
        return this.value;
    }).get();

$.each(countryArr, function() {

$ul.append('<li>' + '<a href="setlocale.aspx?returnURL=' + pathname + '&localesetting=' + this.slice(0) + '">' + this.slice(3) + '</a>');

});
4

1 回答 1

1

你能不这样做吗,基本上遍历每个并在属性上<a>做一个:string.replacehref

$("a").each(function() {
    var oldHref = $(this).attr("href");

    var newHref = oldHref.replace("Default.aspx", window.location.pathname);

    $(this).attr("href", newHref);
});​​​

如果您要更换更多,这显然是行不通的Default.aspx。您需要以下内容:

$("a").each(function() {
    var oldHref = $(this).attr("href");

    // get the URL to string.replace
    var toReplace = oldHref.substring(oldHref.indexOf("=") + 1, oldHref.indexOf("&"));

    var newHref = oldHref.replace(toReplace, window.location.pathname);

    $(this).attr("href", newHref);
});​​​
于 2012-08-15T10:26:21.497 回答