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>

returnURL からを削除しDefault.aspx、ユーザーが現在いるページに置き換えたいと思います。これは私が試したものですが、正しいかどうかわかりませんか?

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>に対して 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 に答える