目前總共有14個:
以下3個1.8(含)之後可接受負數,1.7(含)以上的我才會寫,想知道的看官網藍色的那一條最右邊都有寫
:eq():equals,等於,從0開始,和.eq()相同,但.eq()很早就可以用負數了,兩個現在只差在寫在括號裡面或外面而已; 不過.eq()是放在遍歷裡,所以跑迴圈時,儘量用.eq,其他再用:eq
:gt():greater than, 大於,從0開始,目前沒有.gt()這種東西
:lt():last than小於,從0開始,目前沒有.lt()這種東西
:first:取第一筆
:last:取最後一筆
:odd:取奇數
:even:取偶數
:header:取HTML的H1~H6
:not():取反
:lang():抓屬性lang的字串,大小寫沒差
:root:取得HTML物件
:animated:取得有動畫的物件:target:取得網址上#後面的字
:focus:jQuery 5介紹過,所以它是選擇器,也是過濾器
※:eq、:gt、:lt、:first、:last
$(function() { $("ul:eq(1) > li:eq(1)").css('background-color', 'red'); for(var i=0; i<$('ul').length; i++){ $("ul:eq(" + i + ") > li:lt(1)").css('background-color', 'red'); } $("ul:last > li:first").css('background-color', 'red'); }); ---------- <ul> <li>A</li> <li>B</li> <li>C</li> <li>D</li> <li>E</li> </ul> <ul> <li>F</li> <li>G</li> </ul> <ul> <li>H</li> <li>I</li> <li>J</li> </ul>
※$("ul:eq(1) > li:eq(1)"),是比較好的寫法,G被選中
※$("ul > li:eq(1)"),只有B會被選中,並不是所有的ul,我試的結果也只有:eq指的是第一個,其他都是指全部的ul
※如果每一個ul都要選中,我想到的是用迴圈
※$("ul > li:lt(1)"),小於1(B)的,所以結果是A
※$("ul > li:gt(1)"),大於1(B)的,所以C~J都會被選中
※$("ul > li:first"),只有A會被選中
※$("ul > li:last"),只有J會被選中
※:odd、:even
$("ul li:odd").css('background-color', 'lightgreen'); $("ul li:even").css('background-color', 'pink');
※ul一樣指全部,也是從0開始,0是偶數,所以第一行是粉紅色
※:header、:not
$(function() { $(':header').css('color', 'red'); $('input:not(:disabled)').css('color', 'green'); $(':header').css('color', 'red'); }); ---------- <h1>1</h1> <h2>2</h2> <h3>3</h3> <h4>4</h4> <h5>5</h5> <h6>6</h6> <h7>7</h7> <h8>8</h8> <h9>9</h9> <h10>10</h10> <input value="a" /> <input value="b" /> <input value="c" disabled="disabled"/> <input value="d" /> <input value="e" disabled="disabled"/>
※雖然HTML沒有H7~H9,但我試也是可以(但不會換行),H10(含)以上就不行了
※:lang
$(function() { $("span:lang(en_us)").css('background-color', 'red'); $("span:lang(zh_tw)").css('color', 'green'); }); ---------- <span lang="EN_US"> a <span> b <span>c</span> </span> </span> <span lang="zh_tw"> 1 <span> 2 <span>3</span> </span> </span>
※很多屬性都有lang,裡面的字串對應到:lang的()裡就能選中了,所以不一定要用zh_tw這種格式,大小寫沒差
※:root
$(function() { var xxx = $(':root'); // debugger; alert(xxx[0].nodeName); });
※取得HTML物件,但為什麼可以.nodeName呢?還可以點哪些呢?
打開註解那一行後,瀏覽器按F12,然後再按重整,如下操作(只截IE8、IE11和Chrome的圖):
※最後的圖是IE8,要先Start Debugging再重整才有作用
※有下拉是因為滑鼠要放在變數(xxx)不動,出來後,左邊就是可以點的名稱了,右邊是值
※:animate
$(function() { $("div").animate({width: "500px"}, "slow"); $("span").animate({width: "500px"}, "slow"); var xxx = $(":animated"); alert(xxx[0].nodeName); alert(xxx[1].nodeName); }); ---------- <div></div> <span></span>
※必須先有動畫,所以前兩行讓下面的div和span有動畫,然後就可以取得物件,能點什麼名稱,和上面的圖一樣的做法
※:target
$(function($) { $('button').click(function(){ test(); }); }); function test(){ $(':target').css('color', 'red'); } ---------- <button>test</button> <div id="xxx">div</div> <a href="#xxx">xxx</a>
※a href="#"其實就是書籤的功能,點擊超連結後,網址後面就會多個#xxx,這時再按button就會看到變化了
沒有留言:
張貼留言