先看代码:
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"); 改变的是它本身。
浙公网安备 33010602011771号