1

我正在使用以下内容获取活动页面网址:

<?php
function curPageURL() {
 $pageURL = 'http';
 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
 $pageURL .= "://";
 if ($_SERVER["SERVER_PORT"] != "80") {
  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}
?>

回显上面给我的网址如下:

http://www.domain-nane.com/index.php?option=com_content&view=article&id=6&Itemid=109

如果存在活动页面,我想向我的“li”添加一个“当前”类 - 取决于 url 中包含的“Itemid” - 即

<li class="current">
   <a href="index.php?option=com_content&amp;view=article&amp;id=6&amp;Itemid=109">Link 1</a>
<li>
   <a href="index.php?option=com_content&amp;view=article&amp;id=6&amp;Itemid=110">Link 2</a>
</li>
<li>
   <a href="index.php?option=com_content&amp;view=article&amp;id=6&amp;Itemid=111">Link 3</a>
</li>

任何提示/想法?

4

4 回答 4

2

我认为你想要这样的东西:

 <ul id="navigation">
    <li <?php if (strpos($_SERVER['PHP_SELF'], 'index.php')) echo 'class="current"';?>><a href="index.php">Home Page</a></li>
    <li <?php if (strpos($_SERVER['PHP_SELF'], 'about.php')) echo 'class="current"';?>><a href="about.php">About Me</a></li>
    <li <?php if (strpos($_SERVER['PHP_SELF'], 'contact.php')) echo 'class="current"';?>><a href="contact.php">Contact Me</a></li>
    <li <?php if (strpos($_SERVER['PHP_SELF'], 'portfolio.php')) echo 'class="current"';?>><a href="portfolio.php">My Work</a></li>
 </ul>

我希望这能帮到您!

PS:index.php、about.php、contact.php 和 portofolio.php 必须替换为您的页面链接。

于 2013-07-04T10:22:00.730 回答
2

你做错事了

简单的方法如下..

在您的 URLItemid中是唯一的,因此最好按照以下方式执行此操作

<li <?php if($Itemid == $_REQUEST['Itemid']) { echo class='current'; } ?> >
   <a href="index.php?option=com_content&amp;view=article&amp;id=6&amp;Itemid=109">Link 1</a>
</li>

<li <?php if($Itemid == $_REQUEST['Itemid']) { echo class='current'; } ?> >
   <a href="index.php?option=com_content&amp;view=article&amp;id=6&amp;Itemid=110">Link 2</a>
</li>

<li <?php if($Itemid == $_REQUEST['Itemid']) { echo class='current'; } ?> >
   <a href="index.php?option=com_content&amp;view=article&amp;id=6&amp;Itemid=111">Link 3</a>
</li>
于 2013-07-04T10:23:30.670 回答
0

这很简单

<li class="<?php if($Itemid == $_REQUEST['Itemid']) { echo 'active'; } ?> ">

这看起来像是在 HTML 中

<li class="active">
于 2013-07-04T10:29:49.710 回答
0

我不确定您是否需要 Javascript 解决方案。这是我的建议您的 Html 代码

  <ul id="navigation">
    <li class="current">
      <a href="index.php?option=com_content&amp;view=article&amp;id=6&amp;Itemid=109">Link 1</a>
   </li>
   <li>
     <a href="index.php?option=com_content&amp;view=article&amp;id=6&amp;Itemid=110">Link 2</a>
   </li>
   <li>
     <a href="index.php?option=com_content&amp;view=article&amp;id=6&amp;Itemid=111">Link 3</a>
   </li>
 </ul>

Javascript代码

url = 'http://www.domain-nane.com/index.php?option=com_content&view=article&id=6&Itemid=111';
   //  url = '<php echo curPageURL();?>';
var urlRegex =/Itemid=([0-9]+)/i;
var Itemid = url.match(urlRegex)[1];
// alert(Itemid);

var nodes = document.getElementById('navigation').childNodes;
var lis;
for(i=0; i<nodes.length; i++) {
    if(nodes[i].nodeType == 1){
      var lis = nodes[i];
      var aElem =   lis.childNodes[1];
      var AItemId = aElem.href.match(urlRegex)[1];
    if(Itemid == AItemId) {
        lis.className = lis.className + " current";
    }
    }
}

运行示例 http://jsfiddle.net/xdsUm/3/

于 2013-07-04T11:47:27.947 回答