gpt4 book ai didi

jquery获取href值新选择的类

转载 作者:行者123 更新时间:2023-12-01 06:19:49 26 4
gpt4 key购买 nike

嗨,我有一个 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com