初学jquery在find上遇到的问题

今天想给自己的网站品牌童装批发网 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或者元素名"),如果不写就是所有同级的元素

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值