28-解决方案
1.6.2 解决方案
使用 .find()
方法,根据当前集合及其后代的上下文创建一个新的元素包装器集。例如,假设你有一个包含多个段落的网页,这些段落中封装的是需要强调(以斜体显示)的单词。如果你只想选择 <p>
元素中包含的 <em>
元素,可以使用如下代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p>Ut ad videntur facilisis <em>elit</em> cum. Nibh insitam erat facit
<em>saepius</em> magna. Nam ex liber iriure et imperdiet. Et mirum eros
iis te habent. </p>
<p>Claram claritatem eu amet dignissim magna. Dignissim quam elit facer eros
illum. Et qui ex esse <em>tincidunt</em> anteposuerit. Nulla nam odio ii
vulputate feugait.</p>
<p>In quis <em>laoreet</em> te legunt euismod. Claritatem <em>consuetudium</em>
wisi sit velit facilisi.</p>
<script type="text/JavaScript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/JavaScript">
//在警告框中显示<p>元素中找到的斜体单词总数
alert('The three paragraphs in all contain ' +
jQuery('p').find('em').length + '
italic elements');
</script>
</body>
</html>
记住,也可以改写上述代码,将上下文引用作为jQuery函数的第二个参数:
alert('The three paragraphs in all contain ' + jQuery('em',$('p')).length +
' italic elements');
此外,值得一提的是,最后这两个代码示例只是为了说明的目的而编写的。使用CSS选择器表达式选择包含在 <p>
元素(祖先)中的斜体元素(后代)即使不实用,也是更符合逻辑的。
alert('The three paragraphs in all contain ' + jQuery('p em').length +
' italic elements');