我有一段代码可以获取 URL 中的任何哈希更改。
只要有人输入哈希值,它就会起作用并发出通知。
但是,我想更改容器的类名。当我尝试这样做时,它更改了所有类名称,我明白为什么。
有没有办法指定索引例如
$(".agenda-tabs li").this('class', 'active');
这是代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>jQuery Example</title>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="https://raw.githubusercontent.com/cowboy/jquery-hashchange/v1.3/jquery.ba-hashchange.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$( "#seminars" ).hide();
$( "#speakers" ).hide();
$(function(){
// Bind the event.
$(window).hashchange( function(){
// Alerts every time the hash changes!
var currenthash = location.hash;
$('.agenda-tabs').find('.ui-link').each(function(){
var innerDivId = $(this).attr('href');
if(innerDivId==currenthash)
{
$(".agenda-tabs li").attr('class', 'active');
}
else
{
$(".agenda-tabs li").attr('class', '');
}
});
})
// Trigger the event (useful on page load).
$(window).hashchange();
});
});
</script>
</head>
<body>
<ul class="agenda-tabs nav nav-tabs">
<li class="first-tab">
<a class="btn btn-default ui-link" data-toggle="tab" href="#t1">
City
<span></span>
</a>
<div id='conference'>
1
</div>
</li>
<li class="active">
<a class="btn btn-default ui-link" data-toggle="tab" href="#t2">
Speakers
<span></span>
</a>
<div id='seminars'>
2
</div>
</li>
<li class="last-tab">
<a class="btn btn-default ui-link" data-toggle="tab" href="#t3">
Stage
<span></span>
</a>
<div id='speakers'>
3
</div>
</li>
</ul>
</body>
</html>
最佳答案
您已经有一个 anchor <a>
上下文变量中的元素 ( this
)。您只需更改父元素 <li>
// get the parent li and set it as active
$(this).closest("li").addClass('active'); // Add
或者
// get the parent li and set it as active
$(this).closest("li").removeClass('active'); // remove
关于javascript - 根据 URL 更改更改 DOM 元素类名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28463170/