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>
$("#div div") 这个中间有空格的为:后代选择器,意思是:选择#div元素内部所有div后代元素$("#div > div")这个为:子代选择器,意思是:选择#div元素内部子代元素所有第一级div元素当然,首先你的#div 就已经写错了,你的id都是等于 div1 div2 并没有那个id是等于div的#符号 代表id
$(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格式,所获取的对象应该不止一个的,所以最后全部进行输出来测试对比,因为不然得出的都是获取第一个对象的结果,肯定是一样的