0

私のページ名はindex.phpで、いくつかのリンク(内部ページリンク)とコンテンツが含まれています。リンクをクリックすると、リンクに適用"selected" classliて関連コンテンツを表示し、ページリンクがindex.phpからindex.php#c2(または他のIDの場合は#c3、#c4、c1)に変更されます。

私の問題はページの読み込みにあります。私が他のページでこのリンクを与えるならば、例えば。page.php私はこのように与えましたが、これに基づいてURLで渡された<li><a href="index.php?#c2">link2</a></li>ことをどのように知ることができますか?私はそれを試しましたが、しませんでした。「?」の後の文字列を取得できません。#c2"selected" classli$_SERVER

plsはこれを行う他の方法があるかどうか教えてくれます。

<li class="selected"><a href="#c1">link1</a></li>
<li><a href="#c2">link2</a></li>
<li><a href="#c3">link3</a></li>
<li><a href="#c4">link4</a></li>

<div id="c1"><!-- contents of link1 --></div>
<div id="c2"><!-- contents of link2 --></div>
<div id="c3"><!-- contents of link3 --></div>
<div id="c4"><!-- contents of link4 --></div>

選択したクラスを追加するJqueryコード

$('.links a').click(function(){
    $('.links  a').parent().removeClass('selected');
    $(this).parent().addClass('selected');  
});

前もって感謝します..

4

3 に答える 3

3

PHP でこれを行うことはできません。それはクライアント メカニックであり、PHP がサーバー上にあるためです :) クエリ文字列を JS で直接解析する必要があります。

このようなことを試してください:

$('a [href='+document.location.hash+']').parent().addClass('selected');
于 2012-07-19T11:01:48.150 に答える
1

私はこれがうまくいくと思います...例えば

example.com/page.html#anchor
example.com/page.html#anotheranchor

ソルンは…

if(window.location.hash) {
  // Fragment exists
} else {
  // Fragment doesn't exist
}
于 2012-07-19T11:06:58.220 に答える
0

要素ごとに clss を定義するよりも、サーバー スクリプトまたは JavaScript で正規表現を使用できます。以下に示す正規表現パターンを使用するだけで、URL のリンク部分のみが得られます。

     ^.*index.php/?(.*)$ 

JavaScript でRegExp オブジェクトを使用する方法を確認するには、リンクをたどってください。

于 2012-07-19T11:23:53.897 に答える