作者KeithYeh (棒球痴)
看板Web_Design
标题Re: [问题] jQuery选择器问题
时间Sat Apr 27 21:55:06 2013
※ 引述《supercygnus (......)》之铭言:
: 请问
: $("div").find('p:first').css("border-color","#FF9D37");
: $("div p:first").css("border-color","#FF9D37");;
: 这两者为什麽效果不一样,要怎麽理解呢~?
: 用以下程式码去测试就知道了
: <div>
: <p class="testClass">
: 测试1<span>子元素1</span>
: </p>
: </div>
: <br>
: <div class="testClass">
: <p class="testClass">
: 测试2<span>子元素2</span>
: </p>
: </div>
首先要厘清的是 $(":first") 这个选择器
:first 并不是CSS的选择器
是jQuery延伸出来的API,说明页:
http://api.jquery.com/first-selector/
里面就写道,这玩意儿只会作用在第一个match到元素上
$("div").find('p:first').css("border-color","#FF9D37");
这行执行後的结果是先选到所有div元素,再从每个div元素下去寻找p:first
所以你会看到两个元素都作用到了
$("div p:first").css("border-color","#FF9D37");
而这行只会作用在第一个match到的 "div p" 元素上面,所以只有第一个被改变了
范例码:
http://jsfiddle.net/6sG3T/
有错请指正,感激不尽 <(_ _)>
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.41.174.20
1F:推 f1234518456: 04/27 22:24