0

WPメニューシステムを使用するWordpressのメニューがあります。すべてのリンクは、基本的に次のものを出力するカスタム リンクです (簡潔にするために WP クラスは削除されています)。

<ul>
<li><a href="http://mysite.com/about">About</a>
 <ul>
   <li><a href="http://mysite.com/about/#section-1">Section 1</a></li>
   <li><a href="http://mysite.com/about/#section-2">Section 2</a></li>
   <li><a href="http://mysite.com/about/#section-3">Section 3</a></li>
  </ul>
 </li>

<li><a href="http://mysite.com/services">Services</a>
 <ul>
   <li><a href="http://mysite.com/services/#section-1">Section 1</a></li>
   <li><a href="http://mysite.com/services/#section-2">Section 2</a></li>
   <li><a href="http://mysite.com/services/#section-3">Section 3</a></li>
   <li><a href="http://mysite.com/services/#section-4">Section 4</a></li>
  </ul>
 </li>
</ul>

親ページが表示されている場合は URL のドメイン部分を削除しようとしているので、About ページを表示している場合、メニューのリンクは次のように変わります。

<li><a href="http://mysite.com/about">About</a>
 <ul>
   <li><a href="#section-1">Section 1</a></li>
   <li><a href="#section-2">Section 2</a></li>
   <li><a href="#section-3">Section 3</a></li>
  </ul>
</li>

<li><a href="http://mysite.com/services">Services</a>
 <ul>
   <li><a href="http://mysite.com/services/#section-1">Section 1</a></li>
   <li><a href="http://mysite.com/services/#section-2">Section 2</a></li>
   <li><a href="http://mysite.com/services/#section-3">Section 3</a></li>
   <li><a href="http://mysite.com/services/#section-4">Section 4</a></li>
  </ul>
 </li>

</ul>

私がjQueryで抱えている問題は、ページが不明であるため、特定の各ページをターゲットにできないことです。したがって、URLを取得してメニューの正しい部分と一致させてリンクを変更する必要があります。私はこれを試しましたが、あまりにも具体的です:

if (window.location.href.indexOf("about") != -1) {

  //do something

} else {

  //do something else

}

編集

現在のページのメニュー内のリンクのみを変更したい。これまでの回答は、メニュー内のすべてのリンクを変更します。同じページにあるリンクをターゲットにしたいだけです。

4

3 に答える 3