JQuery-链式练习中遇到的问题

代码



    
    链式写法


    




在这次练习中,遇到了两个问题:
1、为什么当点击div.has_children时,添加了highlight样式,但只有标签的背景色变为了绿色。下面展开的a标签的内容的背景色并没有变为绿色。a标签中的内容也是div.has_children中的内容。
2、在调用了siblings()方法后,下面的.children('a').hide(); 作用于this还是this的兄弟元素。

第一个问题:因为a标签设置了float样式,此时已经脱离了文档流,而div.has_children并没有设置高度,因此div中包裹着的是span标签。如果要在视觉上div.has_children包裹a标签。可以动态地给div.has_children添加高度。但是此时的a标签其实还是脱离了文档流了的。
第二个问题:在调用siblings后,后面的.children('a').hide();虽然还跟在$(this)后面,但是收到siblings()的影响。.children('a').hide();此时是作用于this对象的兄弟元素。

其中这里面还有另一个知识点。
点击了div.has_children后,a标签一个一个往下排列。而没有一个一个挨着左边排列。这是因为a标签设置了float样式,然后就可以设置宽度,此时设置的宽度和父元素div.menu的宽度是一样的。所以就会外下排列。

上述纯属个人理解,如有不正确的地方,请指正。

你可能感兴趣的:(JQuery-链式练习中遇到的问题)