2016年4月19日 星期二

基本選擇器 (jQuery 2)

※基本選擇器

有元素選擇器(抓HTML)、類別選擇器(.)、ID選擇器(#)、名稱選擇器(name)、星選擇器(*)
官網連結,在官網API文件的左邊有個叫Selectors,裡面有Basic


$(function() {
    $('p').css('font-style', 'italic');
    $('[name="zzz"]').css('background-color', 'yellow');
    $('#xxx').css('font-size', '24px');
    $('.ooo').css('color', 'red');
    
    $('#x\\.o').css('font-family', 'impact');
    $('#x\\:o').css('font-weight', 'bold');
    $('#\\[xox\\]').css('background-color', 'green');
});
    
<body>
    <p>p</p>
    
    <input type="text" name="zzz" value="z1" />
    <div name="zzz">z2</div>
    <p name="zzz">z3</p>
    
    <div id="xxx">x1</div>
    <div id="xxx">x2</div>
    <div id="xxx">x3</div>
    
    <h3 class="ooo">o</h3>
    
    <div id="x.o">s1</div>
    <div id="x:o">s2</div>
    <div id="[xox]">s3</div>
</body>

※結果:

※單引號和雙引號沒差,主要是用在第二個的情形,因為兩組打一樣會找不到,一找不到連下面的程式都不會執行,所以後面的都沒有效果

※name因為可以很多,所以要用陣列包起來([])

※id只能一個,如果寫很多,只會抓到第1個

※class可以設成多個,要用空格隔開,如<h3 class="ooo xxx">o</h3>,這時如果用$('.ooo xxx')是抓不到的,要用$('.ooo')或$('.xxx')
只有class是這樣,name和id都不會這樣

※有特殊字元,如上面的「.:[]」,前面要用跳脫字元(\\)才抓的到
官網的id選擇器有個叫escape those characters with backslashes的超連結,有教不用跳脫字元的用法

※id和class不能用$('id=""')、$('class=""'),會抓不到

※css方法是學css用的,寫的是「key:value」,可以參考W3C這裡

※要設定多組css有三種方法,如下
// 1
$('.ooo').css('color', 'red');
$('.ooo').css('font-size', '70px');
    
// 2
$('.ooo').css('color', 'red').css('font-size', '70px');
    
// 3
$('.ooo').css({'color':'red', 'font-size':'70px'});

※注意用「{}」時,裡面變「:」


※一次選多個

如果要好幾個的效果要一樣,要用「,」隔開,如下:
$('.ooo, p, #xxx').css('color', 'red');

※class是ooo,還有元素p,和id是xxx的效果都會一樣


※星選擇器

$('div *').css('background-color', 'lightblue');
----------
<p>p</p>
<div>
    <div>div</div>
    <p>p</p>
</div>

※這樣子會將div以下(不包括自己)設定背景色

※也可以用$('body *')針對整張網頁

※結果為下圖,黑線上面是div *,黑線下面是body *

※如果是用$('*'),那麼就是針對整張網頁,以上面的例子,就等於在設定背景色

1 則留言:

  1. 1xbet | 1xbet | Bet with a Bonus - RMC | Riders Casino
    1XBet allows 도레미시디 출장샵 you to bet on https://sol.edu.kg/ any favourite 토토사이트 horse 1xbet korean races or any other sporting event. ✓ Get up to £300 febcasino + 200 Free Spins No Deposit

    回覆刪除