1.tabmenu问题
这个问题我一直在网上参考源码,参考了很多源码,但是我感觉很难处理,我自己困惑的地方有这样几点。
1、我只能通过getElementById(“tab”)在读取他的子元素时我只能getElementsByTagName(“li”),那么我如何才可以去读取他的classname呢?这个我很不清楚,也写了,但是是无法通过的,我很不能理解,希望有高人可以替我解释一下。
2、给一个元素增加新的classname的过程中时,我发现addclass(),被认为是没有定义的函数,我自己经过测试经过各种查资料发现只有通过x.className += ” “+”selected”;你还必须加个“ ”,否则class的名字就直接是AB而不是我们想要的A B了。
3、移除classname时,x.replace是行不通的。
4、左右侧必须一一对应控制台会报错。
【我参考的资料【挺有用的,很详细,不像网上就只有源码,这个也从思想的角度剖析了】,很棒,建议大家去看一下】
http://blog.sina.com.cn/s/blog_418d7b1e0100w6ch.html
我自己的代码如下,然后这个根据上方的那个资料,真的很棒,这里的JS和HTML一点关系都没有,不需要去更改css样式,也不需要去用复杂的什么OPACITY透明化。
<script>
function changetab(){
var tabs=document.getElementById("tab").getElementsByTagName("li");
for(var i=0;i<tabs.length;i++){
tabs[i].onclick=tab;
}
}
function tab(){
var tabs=document.getElementById("tab").getElementsByTagName("li");
var cts=document.getElementById("tabmenu").getElementsByTagName("div");
for(var i=0;i<tabs.length;i++){
tabs[i].className="btn";
cts[i].className="menut-right-div";
if(tabs[i]==this){
tabs[i].className+=" "+"selected";
cts[i].className+=" "+"show";
}
/*控制台输出看他的classname对不对*/ console.log(tabs[i].className); console.log(cts[i].className);
}
}
window.onload=function(){
changetab();
}
</script>
9-24补充
仿别人网站时发现一个更加简单的tabmenu的代码,非常简短
html:
<ul class="bonus-tab">