这一句看不懂-------------------------------------
$("#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");
我一般以防自己被绕晕都是写的比较短的链式操作。
你可以认为调用一个方法返回一个对象,再以这个对象继续调用方法,以此类推,有点像递归