jQuey链应该怎么理解呢

$(function(){ $("#one").add("#two").add("#three").add("#x").css("opacity",0.7); $("#x").draggable({axis:"x"}); //只能在x方向拖拽 $("#y").draggable({axis:"y"}); //只能在y方向拖拽 $("#parent").draggable({containment:"parent"}); //只能在父元素中拖拽 });




x轴
y轴
父元素

这一句看不懂-------------------------------------
$("#one").add("#two").add("#three").add("#x").css("opacity",0.7);
是指one这个层中的two中的three吗,好像不对,他们是平级的,难道要理解为将two加入到one中,将three放入到two中,以此类推吗,还是指将one ,two ,three这三个共同加上样式.css("opacity",0.7);呢,请相关朋友给解释下哈,不过网页上呈现的情况来看,应该是加上样式,但从以前的jQuery链的理解较浅,不知道是不是

$("#one").add("#two").add("#three").add("#x").css("opacity",0.7);

意思就是将two加入到one成为一个元素结合,然后继续加入three,此时元素集合变为了3,再加x,元素集合数目为4个。
最终效果就是one、two、three、x的透明度都变为了0.7,即给集合中的每一个元素设置了opacity属性。
可以参考一下这里面的解释:http://www.w3school.com.cn/jquery/traversing_add.asp

如果你这个add是jquery自己的add的画,那这三个是并集的,也就是

$("#one").add("#two").add("#three").add("#x").
也就是id是one,two,three,x的这几个dom节点的css样式透明度设为0.7

其实最简单的理解就是,执行完一个操作就立刻执行下一个,你说的这个大概意思是:

 <!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>链式操作</title>
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script> 
</head>
<body>
<input type="button" value="add" onclick="add()" />
<div id="one">

</div>
</body>
<script type="text/javascript">

function add()
{
    $("#one").append('one add ').append('one add 1').append('one add 3').css({"background-color":"red"});
}
</script>
</html>

执行之后css是赋值给了one的.你运行看一下效果应该就明白了

具体是平级的还是下级的,主要看add方法返回什么。如果返回的是插入的节点,那么再插入自然就是平级并且在此前插入的后一个。

jquery 支持链式的操作

jquery 链 就是每个Jquery 方法 调用完之后 会把该对象作为返回值 返回回来,,然后就可以继续调用其他方法

JQuery的链式操作就是在上一个方法结束后,又回到自己的那个节点继续执行下一个方法。相当于:
$("#one").add("#two");$("#one").add("#three");$("#one").add("#x");
我一般以防自己被绕晕都是写的比较短的链式操作。

你可以认为调用一个方法返回一个对象,再以这个对象继续调用方法,以此类推,有点像递归