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

2024-11-20 16:02:52
推荐回答(3个)
回答1:

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

回答2:

$(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格式,所获取的对象应该不止一个的,所以最后全部进行输出来测试对比,因为不然得出的都是获取第一个对象的结果,肯定是一样的

回答3:

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