jquery中$("#div div")和$("#div").find("div")和$("#div > div")有区别吗?

jquery中$("#div div")和$("#div").find("div")和$("#div > div")有区别吗,试验了下好像结果都一样,但不知道有没有区别,求大神,以下是我试验用的html
<div id="div1">
1
<div id="div2">2
<div >2.1</div>
<div >2.2</div>
</div>
<div id="div3">3</div>
<div id="div4">4</div>
<div id="div5">5</div>
</div>
<div id="div6">6</div>
最新回答
揉揉肚子

2024-07-04 02:04:38

$("#div div") 这个中间有空格的为:后代选择器,意思是:选择#div元素内部所有div后代元素
$("#div > div")这个为:子代选择器,意思是:选择#div元素内部子代元素所有第一级div元素
当然,首先你的#div 就已经写错了,你的id都是等于 div1 div2 并没有那个id是等于div的
#符号 代表id
悠悠变黑脸婆!

2024-07-04 12:37:18

$(function(){

$("#div1 div").each(function(n){
alert($(this).html());
});
alert(/s/);
$("#div1").find("div").each(function(n){
alert($(this).html());
});
alert(/y/);
$("#div1 > div").each(function(n){
alert($(this).html());
});
})

这是我的测试结果,是有区别的,你认真看吧,详细的区别跟CSS 样式的 区别一样,因为jquery的选择器就是根据
CSS样式
规则来使用的

还有补充一点,估计你测试的时候只是针对 一个来进行测试了,你所设定的HTML格式,所获取的对象应该不止一个的,所以最后全部进行输出来测试对比,因为不然得出的都是获取第一个对象的结果,肯定是一样的
寄烟念七晴

2024-07-04 17:48:59

区别挺大的。但是咱不爱说