今天想给自己的网站品牌童装批发网 http://www.61pf.net 加一个新闻版面,而且几个栏目是可以切换的,就从别的网站上找了一串代码来
照葫芦画瓢,抄了下来,但是弄了很久都搞不定
调用的代码是这样的
tab("#tab_2","li","#neirong",".myrcwwmb1qzzx4","mouseover");
这个函数调用的内容是
function tab(tab,tab_tag,tag_con_box,tag_con,act){
/*
* tab 需要切换标签的ID
* tab 需要切换的标签元素
* tab 需要切换所有内容最外层的父元素
* tab 需要切换所有内容的元素
* act 标签切换的方式 鼠标点击(click),还是鼠标over(mouseover),默认是点击,参数可以不写
*/
if(!act){ act="click"};
if(act=="click"){
$(tab).find(tab_tag).each(function(i){
$(tab).find(tab_tag).eq(i).click(
function(){
current(this);
$(tag_con_box).find(tag_con).eq(i).show().siblings(tag_con).hide();
})
})
}
if(act=="mouseover"){
$(tab).find(tab_tag).each(function(i){
$(tab).find(tab_tag).eq(i).mouseover(
function(){
current(this);
$(tag_con_box).find(tag_con).eq(i).show().siblings(tag_con).hide();
})
})
}
}
function current(e){
$(e).addClass("current").siblings().removeClass("current");
}
但是弄了N久都不行,一步一步测试发现
$(tag_con_box).find(tag_con).eq(i).show().siblings(tag_con).hide();
是这里的find没有找到东西,但是为什么别人的网站又是好的呢,自己新建了一个页面,加了一个div,2个span,一步一步测试,最后发现了问题所在
tab("#tab_2","li","#neirong",".myrcwwmb1qzzx4","mouseover");
这个函数的第四个参数".myrcwwmb1qzzx4" 改成 "#myrcwwmb1qzzx4"
把"."点 换成"#"号,到现在都不明白为什么在别人的网站上能用
最后总结一下自己测试find的用法
括号里的变量如果是使用id的话id前要加上#,也就是$("#id1")",如果是元素的话则不用("div")这样就可以了
打个比喻,代码如下
<div id="neirong">
<span id=abc>123</span>
<span id=abc>456</span>
</div>
要让div中的第一个span隐藏起来直接用元素的写法是
$("div").find("span").eq(0).hide();
用id的写法是
$("#neirong").find("#abc").eq(0).hide;
还总结的有
取得元素的个数是.size,而不是平时惯用的length
取得所有同级元素的方法是siblings("ID或者元素名"),如果不写就是所有同级的元素