jQuery中“~”的问题
为什么~这个传递css时在本身也起作用比如$("p~div").css();这句话会影响p的格式,但是~这个用在html时就不再本身起作用,比如$("p~div").html();html的内容只会在div中显示,在p中就不会显示出来。
为什么~这个传递css时在本身也起作用比如$("p~div").css();这句话会影响p的格式,但是~这个用在html时就不再本身起作用,比如$("p~div").html();html的内容只会在div中显示,在p中就不会显示出来。
2015-11-25
p~div 选择p下面所有的标签名为div的兄弟(p 和 div 同属与一个父标签)。
<div> <p>i am p</p> <div>我会被 p~div 选中,因为我是p下面的兄弟</div> <h1>我不会被 p~div 选中,因为我虽然是p下面的兄弟,但是我并不是div标签</h1> <div>我也会被 p~div 选中,因为我是p下面的兄弟</div> </div>
记住,x~y 选择的是后面的y元素,前面的选择器x只是个限定条件。。
所以,“$("p~div").css();这句话会影响p的格式”这句话应该是不正确的,是由于div的样式发生了改变,对p的样式进行了影响,比如 div 加了一个margin-top,那么会导致div把p顶开。p本身的样式没有发生任何变化。。
“$("p~div").html();html的内容只会在div中显示”,这个是肯定的,因为选择的就是div,所以html内容只会在div中显示。。
举报