一、说明
如果想通过 DOM 元素之间的层次关系来获取特定元素,例如后代元素,子元素,相邻元素,兄弟元素等,则需要使用层次选择器.。
二、层次选择器
1 、ancestor descendant
用法: $(”form input”);
返回值:集合元素。
说明: 空格代表下级,在给定的祖先元素下匹配所有后代元素。这个要和下面讲的 ”parent > child”
区分开。
2、parent > child
用法: $(”form > input”);
返回值:集合元素。
说明:在给定的父元素下匹配所有子元素,注意:要区分好后代元素与子元素。
3、prev + next
用法: $(”label + input”);
返回值:集合元素。
说明:匹配所有紧接在 prev 元素后的 next 元素,必须是 prev 后面紧挨着的元素才能拿到。
4、prev ~ siblings
用法: $(”form ~ input”);
返回值:集合元素。
说明: 匹配 prev 元素之后的所有 siblings 元素。
注意:是匹配之后的元素,不包含该元素在内,并且 siblings 匹配的是和 prev 同辈的元素,其后辈元素不被匹配。 (“prev ~ div”) 选择器只能选择 “# prev ” 元素后面的同辈元素;而 jQuery 中的方法 siblings() 与前后位置无关, 只要是同辈节点就可以选取。
三、代码演示
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:set var="path" value="${pageContext.request.contextPath }"></c:set>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="${path }/js/jquery-1.8.3.js"></script>
<title>Insert title here</title>
<script type="text/javascript">
/*
$(function()
{
});
*/
function myclick()
{
//注意:不支持id选择器
//var divs = $("form input");
//var divs = $("form > input");
//var divs = $("input + select");
var divs = $("textarea ~ input");
divs.each(function()
{
var divObj = $(this);
alert(divObj.html());
});
}
</script>
</head>
<body>
<form action="">
用户名:<input id="username" name="usename" type="text"><br>
密码:<input name="password" type="password"><br>
<div>
密码1:<input name="p1" type="text"><br>
</div>
<textarea></textarea>
<select>
<option>足球</option>
<option>篮球</option>
</select>
<select>
<option>男</option>
<option>女</option>
</select>
用户名:<input id="username" name="usename" type="text"><br>
</form>
<input name="usename" type="text">
<input type="button" value="点击" onclick="myclick()">
</body>
</html>
如有错误,欢迎指正!