不要这样做。元素ID不应该根据网页的状态而改变。改用另一个属性,如class="current"
。
如果你使用jQuery,我强烈建议,你可以这样做如下:
$('div.tab a').click(function() {
$('div.tab').removeClass('current');
$(this).closest('div.tab').addClass('current');
return false;
});
为了使此代码工作,你需要添加class="tab"
您<div>
元素。这是一个好主意,尤其是如果您在页面上有其他<div>
元素。如果您这样做,那么当前选项卡将有一个属性class="tab current"
。 jQuery知道如何正确处理这个问题。
而且,我会考虑使用id
属性,而不是name
属性,并给你的<a>
标记一个href
属性,这样浏览器将其显示为可点击元素。例如:
<div id="tab1" class="tab">
<a href="#">tab 1</a>
</div>
下面是如何将这个脚本(假设你有JQuery的在同一目录中的HTML页面保存为一个文件jquery.js
)为例:
<!DOCTYPE html>
<html>
<head>
<title>Testing jQuery</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(function() {
$('div.tab a').click(function() {
$('div.tab').removeClass('current');
$(this).closest('div.tab').addClass('current');
return false;
});
});
</script>
</head>
<body>
<div id="tab1" class="tab current">
<a href="#">tab1 link</a>
</div>
<div id="tab2" class="tab">
<a href="#">tab2 link</a>
</div>
<div id="tab3" class="tab">
<a href="#">tab3 link</a>
</div>
<div id="tab4" class="tab">
<a href="#">tab4 link</a>
</div>
</body>
</html>
有几点需要注意:
真的,最好把你的网站的JavaScript放在并且包含它与<script type="text/javascript" src="filename.js"></script>
,但包括它“内联”就像我所做的对于小型项目来说很好,或者只是玩弄东西。
$(function() { ... });
是$(document).ready(function() { ... });
的简写形式,这意味着只要浏览器加载完HTML文档结构,该块内的代码就会被执行。例如,您不希望JavaScript在浏览器完成下载页面的其余部分之前执行。
你使用的是jQuery吗? – mikevoermans 2012-04-03 20:24:07
你不应该改变ID的,而应该在每个div上添加/删除一个名为'current'的类。 – 2012-04-03 20:25:59
我没有使用jquery,我只是最近才开始教自己的HTML和最近的JavaScript,后者我不太明白。 – 2012-04-03 20:47:12