jquery获取id和appending.html&;切换类
我是jquery新手,很高兴能得到一些关于这个的提示。我有几个链接,我想将它们的内容加载到我的#content div。我不使用a href,所以我想加载id和append.html(例如:第一个链接get id=“link1”。单击后我想将link1.html加载到#content div)。此外,我想将单击链接的类从非活动切换到活动,并查找上一个活动链接并将其更改为非活动 这就是我所尝试的:jquery获取id和appending.html&;切换类,jquery,load,find,append,Jquery,Load,Find,Append,我是jquery新手,很高兴能得到一些关于这个的提示。我有几个链接,我想将它们的内容加载到我的#content div。我不使用a href,所以我想加载id和append.html(例如:第一个链接get id=“link1”。单击后我想将link1.html加载到#content div)。此外,我想将单击链接的类从非活动切换到活动,并查找上一个活动链接并将其更改为非活动 这就是我所尝试的: $(".link").click(function() { var linkHref = $
$(".link").click(function() {
var linkHref = $(this).attr("id");
var loadHref = linkHref.append(linkHref + ".html");
$("#content").load(loadHref);
$("#nav").find(".active").toggleClass("active inactive");
$(this).children("a").toggleClass("inactive active");
});
HTML:
<ul id="nav">
<li><a href="#" id="link1" class="active link">Link 1</a></li>
<li><a href="#" id="link2" class="inactive link">Link 2</a></li>
<li><a href="#" id="link3" class="inactive link">Link 3</a></li>
</ul>
输出:什么都没有发生。
append
是jQuery对象的一个方法,而attr
返回一个没有append
方法的字符串(字符串对象),如果要连接字符串,则应改为使用+
运算符。还要注意,您已经将处理程序绑定到a
元素,而不是li
元素,并且不需要使用子元素
var linkHref = $(this).attr("id") + '.html';
啊,我明白了,事情现在越来越清楚了。非常感谢你!最后一件事:e.preventDefault();强制浏览器不导航到a标记中的url,对吗?这就是我认为我得到href=“#”的原因。如果我没有这个,我会喜欢href=“link1.html”,并可以在我的内容中加载它。还是我错了?@user2179266不客气,是的,如果您使用preventDefault
方法,那么您可以使用href
属性而不是ID。
$(".link").click(function(e) {
// Prevent the default action of the event
e.preventDefault();
var linkHref = this.id + '.html';
$("#content").load(linkHref);
$("#nav a.active").toggleClass('inactive active');
$(this).addClass("active").removeClass('inactive');
});