добавить активный класс к li из URL страницы

Я использую следующее, чтобы получить активный URL страницы:

<?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; } ?> 

повторение вышеизложенного дает мне мой URL-адрес следующим образом:

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

Я хочу добавить класс «current» в мой «li», если активна страница присутствует – зависит от «Itemid», содержащегося в URL-адресе, т.е.

 <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> 

Любые подсказки / идеи?

вы делаете неправильную вещь

простой способ ниже.

В вашем URL Itemid уникален, поэтому лучше сделать это следующим образом

 <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> 

Я думаю, что вы хотите что-то вроде этого:

  <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 должны быть заменены ссылками на ваши страницы.

это просто

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

Это будет выглядеть так, как в HTML

 <li class="active"> 

Я не уверен, хотите ли вы решения в 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/