修改jquery树形菜单

七海恋空 2014-08-30 浏览(0 评论(0

首先我对jquery一窍不通,javascript也是这两天才看一些基础语法,不为别的就是想看懂js文件,然后再修改我下载过来的jquery树形菜单。网上下载得来的JS文件一般都是只有几行,空格都没有,一眼望去就像一群蚂蚁方阵。好几次我都要放弃了,但我还是坚持了下来,耐心的分析里面的参数和函数。终于功夫不负有心人,让我在大晚上一点多整出来了。

言归正传,jquery树形菜单下载下来默认加载展开的是第一个父节点的子菜单,这让人很不爽,我明明要访问的是第二个父节点的子菜单。能不能在特定的页面加载特定的父节点呢?做这个JS的人这么牛,应该有这种扩展,我深信不疑。开始我试图在代码上找突破口,想改JS源码。结果失败了,对javascript一点基础都没有,这太强人所难了。于是我又回到js的引用页面上来。


 

// Open the first tab on load
accordion_head.first().addClass('active').next().slideDown('normal');
感谢大神的注释,总算看懂了。调用不同的函数应该能载入相应的父节点,first()应该是展开第一个父节点,那要展开第二个父节点是不是就要用second()函数呢?试了一试,果然异想天开。于是我又在JS文件中寻找first相关的函数,一个个替换看有什么效果。原谅小白只能这样傻傻的去试了。终于试出了first(),last(),only()。最关键的第N个没试出来,我一直以为是nth()这个函数,还想当然的给这个函数代入各种参数,但树形菜单一动也不动。这次真是严重伤了我的脑神经啊!


 

最后我还是向万能的百度求助了。查了各种关键字,看了一堆帖子总算找到了想要的信息:


 

位置选择器

位置选择器主要是根据元素的位置进行选择

div a:first 返回页面第一个在div中的a

div a last 返回页面最后一个在div中的a

div odd 返回页面偶数位置的div

div even 返回页面奇数位置的div

div first-child 返回div 中第一个子选择

div last-child 返回div 中最后一个子选择

only-child 没有兄弟节点的元素

nth-child(n):第n个子节点

eq(n) 第n个匹配元素

gt(n) n之后的匹配元素 不包含

lt(n) n之前的匹配元素 不包含


 

貌似都是一些jquery的基本语法。看了这些我总算知道要用什么函数了。正解:eq(1)就是第二个父节点,以此类推。

我把所有页面的菜单都换了一下,果然看着舒服了许多。强迫症患者伤不起啊!