先看代码:

1 <div>
2         <ul>
3             <li><span>li1</span></li>
4             <li><span>li2</span></li>
5             <li><span>li3</span></li>
6             <li><span>li4</span></li>
7             <li><span>li5</span></li>
8         </ul>
9 </div>
$("span").click(function () {
                if ($(this).text() == "li1") {
                    $(this).parent().css("background-color", "green");
                }
                else if ($(this).text() == "li2") {
                    $(this).parents().css("background-color", "gray");
                }
                else if ($(this).text() == "li3") {
                    $(this).closest("ul").css("background-color", "red");
                }
});

1、parent()

获取匹配的第一个父元素。如上所示,当点击<span>li1</span>时,只改变它的首个父级li的背景色。

2、parents()

获取匹配的除根节点外所有父级元素。如上所示,当点击<span>li2</span>时,li->ul->div的背景色都将改变。

3、closest()

获取与之第一次匹配的父级元素,即从当前元素一直往上查找,直到查找到为止,返回结果只有0或者1个。如上所示,当点击<span>li3</span>时,ul的背景色将改变。

PS:$(this).closest("span").css("background-color", "red"); 改变的是它本身。

 

posted on 2013-02-20 10:49  路ぺ漫漫  阅读(201)  评论(0编辑  收藏  举报