<!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <title></title> <link rel="stylesheet" href="imooc.css" type="text/css"> <style> .left { width: auto; height: 200px; } .left div { width: 150px; height: 70px; padding: 5px; margin: 5px; float: left; background: #bbffaa; border: 1px solid #ccc; } .span { color: blue; } </style> <script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script> </head> <body> <h2>find方法()</h2> <div class="left first-div"> <div class="div"> <ul class="level-1"> <li class="item-1">1</li> <li class="item-2">2</li> <li class="item-3">3</li> </ul> </div> <div class="div"> <ul class="level-2"> <li class="item-1">1</li> <li class="item-2 test">2</li> <li class="item-3">3</li> </ul> </div> <div class="div"> <ul class="level-3"> <li class="item-1">1</li> <li class="item-2">2</li> <li class="item-3">3</li> </ul> </div> </div> <button>点击:find传递表达式</button> <br/> <br/> <h3>find表达式</h3> <div style="border:1px solid red;"> <p> <span>测试1</span> <a>测试2</a> </p> <p> <span>慕课网1</span> <a>慕课网2</a> </p> <div> <span>Aaron1</span> <a>Aaron2</a> </div> </div> <br/> <br/> <button>点击:find传递$对象</button> <script type="text/javascript"> $("button:first").click(function() { $(".left").find("li:last").css('border','1px solid red') }) </script> <script type="text/javascript"> $("button:last").click(function() { //找到所有p元素,然后筛选出子元素是span标签的节点 //改变其字体颜色 var $spans = $('span'); $("p").find($spans).css('color', 'red'); }) </script> </body> </html> 为什么要写上这一步:var $spans = $('span');
var $spans = $('span'); 这样写是找到全局的span。
然后再下一步 $("p").find($spans).css('color', 'red'); p中过滤掉 $spans
当然,直接写 $("p").find('span').css('color', 'red'); 也可以达到同样的效果
我觉得那样写很麻烦 ,还不如直接写$('p > span).css('color' , 'red');
不写也没关系啊 , $(),是个对象 , 里面可以是element , 也可以是选择器,或者其他的 , 不写var $spans = $('span');
把find()改成find('span')效果是一样;不求甚解,别追究的太细了