4

私はjavascriptが初めてです。既存のアンカー (例: #page33) を削除する必要がある場合は、他のアンカー (例: #page1) をリスト内のすべてのリンクに動的に (クライアント側で) javascript または jquery で追加します。

最初の html (サーバーから):

<ul id="lang_menu">
    <li><a href="home.php?lang=eng#page33">English</a></li>
    <li><a href="home.php?lang=tam#page33">Tamil</a></li>
    <li><a href="home.php?lang=sin#page33">Sinhala</a></li>
</ul>

これは次のように動作する必要があります (クライアント側で #page33 を #page1 に置き換えます)。

<ul id="lang_menu">
    <li><a href="home.php?lang=eng#page1">English</a></li>
    <li><a href="home.php?lang=tam#page1">Tamil</a></li>
    <li><a href="home.php?lang=sin#page1">Sinhala</a></li>
</ul>

これは、この開発中のウェブサイトが必要な場所です

私を助けてください。前もって感謝します...

4

2 に答える 2

5

この方法を試してください:-

$(function () {
    $('#lang_menu li a').attr('href', function (_, oldHref) {
        return oldHref + "#page1";
    });
});

デモ

更新された質問については、次のようなものを試すことができます。

正規表現を使用して、URL の #part を置き換えます。

$(function () {
    $('#lang_menu li a').attr('href', function (_, oldHref) {
        oldHref =  oldHref.replace(/\#(.*)/g, "#page1");
         if(oldHref.indexOf('#') == -1)
            oldHref += "#page1";
        return oldHref;
    });
});

デモ2

于 2013-06-02T03:36:31.287 に答える
3

多くの DOM 要素を扱っている場合は、アンカーを遅延して追加する方がコストがかかりません。

jQuery("a").bind("click", function(e) {
  e.preventDefault();
  document.location = jQuery(this).attr("href") + "#page1";
});
于 2013-06-02T03:37:35.097 に答える