已选择jQuery菜单项

已选择jQuery菜单项,jquery,Jquery,我爱你 我有这个菜单: <ul id="navigation"> <li><a href="index.php">Home</a></li> <li><a href="index.php?page=Entidad">Entidad</a></li> </ul> 它不起作用,你能帮我吗?a的父是li它自己,所以你不需要查找li $(docume

我爱你

我有这个菜单:

  <ul id="navigation">
      <li><a href="index.php">Home</a></li>
      <li><a href="index.php?page=Entidad">Entidad</a></li>
  </ul>

它不起作用,你能帮我吗?

a的
li
它自己,所以你不需要
查找
li

$(document).ready(function(){
      $("li a").click(function(){
           $(this).parent().addClass('active');   
      });
});
$(document).ready(function(){
      $("li a").click(function(event){
           $('#navigation li').removeClass();
           $(this).parent().addClass('active');
      });
});
编辑从以前的元素中删除类并添加到当前

$(document).ready(function(){
      $("li a").click(function(){
           $(this).parent().addClass('active');   
      });
});
$(document).ready(function(){
      $("li a").click(function(event){
           $('#navigation li').removeClass();
           $(this).parent().addClass('active');
      });
});

a
parent
li
本身,因此您不需要
查找
li

$(document).ready(function(){
      $("li a").click(function(){
           $(this).parent().addClass('active');   
      });
});
$(document).ready(function(){
      $("li a").click(function(event){
           $('#navigation li').removeClass();
           $(this).parent().addClass('active');
      });
});
编辑从以前的元素中删除类并添加到当前

$(document).ready(function(){
      $("li a").click(function(){
           $(this).parent().addClass('active');   
      });
});
$(document).ready(function(){
      $("li a").click(function(event){
           $('#navigation li').removeClass();
           $(this).parent().addClass('active');
      });
});

在处理
a
的单击时,
li
是父项,因此只需执行以下操作:

$(this).parent().addClass('active'); 

但是,你确信这一点吗?因为我认为让链接成为活动的东西是明智的?只是一个观察。

当处理
a
的点击时,
li
是父项,因此只需执行以下操作:

$(this).parent().addClass('active'); 
但是,你确信这一点吗?因为我认为让链接成为活动的东西是明智的?只是一个观察。

只是

$(this).parent().addClass('active'); //  $(this).parent() selects list element
不需要再在那里找到li元素。

它只是

$(this).parent().addClass('active'); //  $(this).parent() selects list element

无需在此处再次找到li元素。

单击超链接后,您的页面将刷新,因此此代码
$(this).parent().addClass('active')
将无法工作

请尝试以下方法:

$(function() {
                var page = getParameterByName('page');
                $("#navigation a:contains('" + page + "')").parent().addClass('active');
            });

            function getParameterByName(name)
            {
              name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
              var regexS = "[\\?&]" + name + "=([^&#]*)";
              var regex = new RegExp(regexS);
              var results = regex.exec(window.location.search);
              if(results == null)
                return "Home";
              else
                return decodeURIComponent(results[1].replace(/\+/g, " "));
            }

单击超链接后,您的页面将刷新,因此此代码
$(this).parent().addClass('active')
将无法工作

请尝试以下方法:

$(function() {
                var page = getParameterByName('page');
                $("#navigation a:contains('" + page + "')").parent().addClass('active');
            });

            function getParameterByName(name)
            {
              name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
              var regexS = "[\\?&]" + name + "=([^&#]*)";
              var regex = new RegExp(regexS);
              var results = regex.exec(window.location.search);
              if(results == null)
                return "Home";
              else
                return decodeURIComponent(results[1].replace(/\+/g, " "));
            }

您好,Adil,您的代码运行良好,但通过单击链接,我将重新加载页面,而不会将类应用于“li”元素:(我使用了event.preventDefault();若要取消链接的默认行为,请执行此操作,或者在不需要重新加载的情况下将事件绑定到li。问题是,我需要创建指向某些页面的链接,然后将处的类应用于li元素,但重新加载页面时,我会丢失jquery操作。您有什么建议吗?您好,您的代码工作正常,但单击链接,我会看到eload页面,而不将类应用于“li”元素。:(我使用了event.preventDefault();若要取消链接的默认行为,请执行该操作,或者在不需要重新加载的情况下将事件绑定到li。问题是,我需要创建指向某些页面的链接,然后将处的类应用于li元素,但重新加载页面时,我将丢失jquery操作。您有什么建议吗?