Jquery 类元素高亮显示,它取决于变量

Jquery 类元素高亮显示,它取决于变量,jquery,html,css,twig,Jquery,Html,Css,Twig,情况如何?我在html.twig文件中有以下代码: <div id="navbar" class="collapse navbar-collapse"> <ul class="nav navbar-nav"> {% if site == 'users'%} ... <li class="active"><a href="...">User list</a>&l

情况如何?我在html.twig文件中有以下代码:

<div id="navbar" class="collapse navbar-collapse">
    <ul class="nav navbar-nav">

        {% if site == 'users'%}
              ...
            <li class="active"><a href="...">User list</a></li>
            <li><a href="...">Register</a></li>

        {% elseif site == 'registration' %}
            <li><a href="welcome">Home</a></li>
              ...
            <li class="active"><a href="...">Register</a></li>

        {% else if site == '...' %}
          .
          .
          .
        {% endif %}

    {%if site=='用户'%} ...
  • {%elseif site=='注册'%}
  • ...
  • {%else如果站点=='…'%} . . . {%endif%}
它非常“脏”,强制多次重复代码,在这种情况下根本不存在可重用性

目标是什么?目标是通过放置所有


  • 有什么问题吗?


    如何达到最佳解决方案-即使用一个“if”或“bind”语句,而不是当前的“if”语句和可能值的数量的线性级数。也许应该使用JS函数或jQuery解决方案?

    下面是一种使用细枝打印已知链接数组的简明方法

    {# Set array with links #}
    {% set linkArray = [{'name': 'Home', 'href': '#home', 'site': 'user'},
        {'name': 'Register', 'href': '#register', 'site': 'registration'}] %}
    
    <ul class="nav navbar-nav">
    {# Iterate over items #}
    {% for i, item in linkArray %}
       <li{% if site == item.site%} class="active"{% endif %}>
          <a href="{{ item.href }}">{{ item.name }}</a>
       </li>
    {% endfor %}
    </ul>
    
    {#设置带链接的数组#}
    {%set linkArray=[{'name':'Home','href':'#Home','site':'user'},
    {'name':'Register','href':'#Register','site':'registation'}]]
    
      {#迭代项目#} {%i,linkArray%中的项} {%endfor%}
    查看高级菜单处理功能

    更具体地说,请参见它们是如何影响菜单的:

    问题是什么?@BarbaraLaird如何达到最佳解决方案-即使用一个if或“bind”语句,而不是使用当前的、带有可能值数量的“if”语句的线性级数。为了澄清,您有一个链接列表,并希望根据“site”变量显示/隐藏每个链接?而且您上面的代码有很多重复,您希望减少这些重复?@Quantumplate是的,例如,如果“site”变量等于“index”,则以下链接应包含“active”类:如果不是(例如等于“users”),则上述链接不应包含任何类:。所有链接也是如此。
    {# Set array with links #}
    {% set linkArray = [{'name': 'Home', 'href': '#home', 'site': 'user'},
        {'name': 'Register', 'href': '#register', 'site': 'registration'}] %}
    
    <ul class="nav navbar-nav">
    {# Iterate over items #}
    {% for i, item in linkArray %}
       <li{% if site == item.site%} class="active"{% endif %}>
          <a href="{{ item.href }}">{{ item.name }}</a>
       </li>
    {% endfor %}
    </ul>