※內容過濾器
官網連結目前有以下4種:
:contains():抓包含的字串,大小寫有差,子字串、後面有「-」也抓的到,可以說是屬性選擇器的6種綜合體(屬性選擇器有7種,去掉!=)
:empty:只有抓空而已(tab、空格、換行、<br>、\t、\r\n都不行)
:has():有包含其他的selector,抓的是選擇器的,不是has裡面的
:parent:父元素以下(含)都算
※:contains()
$(function(){ $( "span:contains('abc')" ).css('color', 'green'); }); ---------- <span>Abc def</span> <span>abc def</span> <div>abc def</div> <span>abC def</span> <span>abcdef</span> <span>abc-def</span>
※會抓到2、5、6行
※變色是整行都變色,並不是包含的字變色
※:empty
$(function(){ $( "td:empty" ).css('background-color', 'lightblue'); }); ---------- <table border='1' width="20%"> <tr> <td></td> <td> </td> <td> </td> <td><br/></td> </tr> </table>
※只會抓到第一個
※:has()
$(function(){ $( "div:has(p)" ).css('color', 'red'); $( "div:has(div)" ).css('color', 'yellow'); $( "div:has(ul)" ).css('color', 'green'); $( "div:has(li)" ).css('color', 'blue'); $( "div:has(span)" ).css('color', 'purple'); }); ---------- <div> <p> A <div>B</div> </p> <ul> <li>C</li> <li>D</li> </ul> <span>E</span> </div> <div> <div>F</div> <div>
※A~E五個都會抓到,F只有第二個會抓到
※會變顏色的是整個div,也就是選擇器上的div,並不是has裡面的
※:parent
$(function(){ $( "#a:parent" ).css('color', 'red'); }); ---------- <div id="a"> A <div id="b"> B <div id="c">C</div> </div> <div id="d"> D <div id="e">E</div> <div id="f">F</div> </div> <div id="g">G</div> </div> <div id="h"> H <div id="i">I</div> <div>
※結果:
$( "#a:parent" ):A~G
$( "#b:parent" ):BC
$( "#c:parent" ):D
$( "#d:parent" ):DEF
$( "#e:parent" ):E
$( "#f:parent" ):F
$( "#g:parent" ):G
$( "#h:parent" ):HI
$( "#i:parent" ):I
※能見度過濾器
官網連結只有兩種:
:hidden:抓隱藏起來的
:visible:抓沒有隱藏的
$(function(){ alert($( "div:visible" ).text());// A alert($( "div:hidden" ).text());// B alert($( "input:visible" ).length);// 2 $('input[disabled]').hide(); alert($( "input:visible" ).length);// 1 }); ---------- <div>A</div> <div style="display:none;">B</div> <input type="text" disabled="disabled" /> <input type="text" />
※disabled不算隱藏
沒有留言:
張貼留言