jquery获取href值新选择的类

标签 jquery html css

嗨,我有一个 html 片段如下:-

<ul id="userTabs" class="clearfix">

                <li class="selected"><a href="">Profile Home</a></li>

                <li><a href="/test">test</a></li>

                <li><a href="/test2">test2</a></li>

                <li><a href="/test3">test3</a></li>

                <li><a href="/test4">test4</a></li>


    </ul>

我的jquery代码片段是-

$("#userTabs li").click(function(e){
  e.preventDefault();
  $("#userTabs li").removeClass('selected');
  $(this).addClass('selected');
  var href = $('li:selected a').attr('href');
  alert(href);

});

现在的问题是,当我单击链接时,我需要获取一个 href 值,上面的代码会将当前选定的类替换为新选定的链接。但我无法获取选定的类 href 值。我在这里缺少什么?

最佳答案

问题是您在这一行中使用了 : 而不是 .:

var href = $('li:selected a').attr('href');
//              ^-- This should be a . since `selected` is a class name

但是您可以只使用对 li 的引用来获取其子 a 元素,而不用再次遍历整个 DOM:

var href = $(this).children("a").attr("href");

更好的是,您可以将事件处理程序委托(delegate)给 ul 元素,这样会更加高效(只有一个事件处理程序,而不是每个 li 元素一个) :

var tabs = $("#userTabs");
tabs.on("click", "li", function (e) {
    e.preventDefault();
    tabs.children(".selected").removeClass("selected");
    var href = $(this).addClass("selected").children("a").attr("href");
});

关于jquery获取href值新选择的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13153586/

相关文章:

javascript - 使用 jquery 禁用共享点中的隐藏控件

html - 交错列效应

html - 创建一个 mask Div

css - 如何删除数据表分页按钮中的空格

jquery - 我可以使用 CSS 在 <td> 中对齐 <div> 吗?

javascript - 是否有高级 javascript 编辑器可以执行类似于 Visual Studio 的 'go to definition' 之类的操作?

jquery - 链接符号与选项卡中的文本一起出现

html - 垂直居中两个div

Html5 - 在 "content"和相关类之间换行

php - Wordpress php while循环按id返回页面