如何使用 php 和 HTML 更改活动链接的类名

Posted

技术标签:

【中文标题】如何使用 php 和 HTML 更改活动链接的类名【英文标题】:How to change class name for active link using php and HTML 【发布时间】:2019-09-26 01:48:58 【问题描述】:

我创建了一个带有导航菜单的网站。该网页是在 CodeIgniter 中创建的。我想将活动页面链接的颜色更改为另一个。

我已经在页眉上尝试了一些 JS。首先,我尝试了多个无序列表。那行不通,现在我只保留导航菜单元素的无序列表。

<script type="text/javascript">
                        $(document).ready(function()
                        $('#mainav ul li').click(function()
                          console.log('find');
                          $(this).addClass("active");
                        );
                      );
        </script>

这里mainav是header中&lt;nav&gt;的id

php 文件

<nav id="mainav" class="fl_right">
                    <ul class="clear" id="navs">

                    <?php if(!$this->session->userdata('logged_in') || $this->session->userdata('verify'))  :?>
                          <li class="active"><a href="<?php echo base_url();?>" class="nav-link">Home</a></li>
                    <?php endif ;?>
                    <?php if( $this->session->userdata('verify')):?>
                        <li ><a class="nav-link" href="<?php echo base_url();?>details/<?php echo $this->session->userdata('patient_id');?>" >Details</a></li>
                        <li ><a class="nav-link" href="<?php echo base_url();?>history/<?php echo $this->session->userdata('patient_id');?>">Consulting History</a></li>
                    <?php endif ;?>
                    <?php if( !$this->session->userdata('verify') && !$this->session->userdata('logged_in')):?>
                        <li ><a class="nav-link" href="<?php echo base_url();?>register">Register</a></li>
                        <li ><a class="nav-link" href="<?php echo base_url();?>print">Patient Login</a></li>
                        <li ><a class="nav-link" href="<?php echo base_url();?>login">Login</a></li>
                    <?php endif ;?>
                    <?php if( $this->session->userdata('logged_in')):?>
                    <li ><a href="<?php echo base_url();?>doctor" class="active">Home</a></li>
                    <li ><a class="nav-link" href="<?php echo base_url();?>list">List</a></li>
                    <li ><a class="nav-link" href="<?php echo base_url();?>list">Medicine</a></li>
                    <li ><a class="nav-link" href="<?php echo base_url();?>search">Patient</a></li>
                    <li ><a class="nav-link" href="<?php echo base_url();?>logout">Logout</a></li>
                    <?php endif ;?>
                    <?php if( $this->session->userdata('verify')):?>
                    <li class="active"><a class="nav-link" href="<?php echo base_url();?>logout">Logout</a></li><?php endif;?>
                    </ul>

                  </nav>

我需要确定哪个页面现在处于活动状态。也就是改变活动链接的颜色。

【问题讨论】:

【参考方案1】:

试试这样的:

<a class="<?php if($this->uri->segment(1)=="search")echo "active";?>"

说明:

会得到如下的url片段:abc.com/search

这里的searchsegment(1),所以如果segment(1) 的值等于硬编码的"search",那么它将添加活动类。

【讨论】:

以上是关于如何使用 php 和 HTML 更改活动链接的类名的主要内容,如果未能解决你的问题,请参考以下文章

根据类名替换 HTML 元素?

Ajax 在按钮提交上更改链接的类名

如何使用javascript通过类名更改html元素的值

如何更改片段中的主要活动变量

使用 React Hooks 更改元素类名称和兄弟姐妹

如何从 php 脚本更改活动的字符串值并重新创建 apk 文件