jQuery 屬性操作

1瀑踢、html() 取出或設(shè)置html內(nèi)容

// 取出html內(nèi)容

var $htm = $('#div1').html();
// 設(shè)置html內(nèi)容

$('#div1').html('<span>添加文字</span>');

2凝果、text() 取出或設(shè)置text內(nèi)容

// 取出文本內(nèi)容

var $htm = $('#div1').text();

// 設(shè)置文本內(nèi)容

$('#div1').text('<span>添加文字</span>');

3缘圈、attr() 取出或設(shè)置某個屬性的值

// 取出圖片的地址

var $src = $('#img1').attr('src');

// 設(shè)置圖片的地址和alt屬性

$('#img1').attr({ src: "test.jpg", alt: "Test Image" });
jquery特殊效果
fadeIn() 淡入

    $btn.click(function(){

        $('#div1').fadeIn(1000,'swing',function(){
            alert('done!');
        });

    });

fadeOut() 淡出
fadeToggle() 切換淡入淡出
hide() 隱藏元素
show() 顯示元素
toggle() 依次展示或隱藏某個元素
slideDown() 向下展開
slideUp() 向上卷起
slideToggle() 依次展開或卷起某個元素

例:

<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
    <script type="text/javascript">
        $(function(){
            $('#btn').click(function(){
                // $('.box').fadeOut();//淡出
                // $('.box').fadeIn();//淡入
                // $('.box').fadeToggle();//切換淡入淡出
                // $('.box').toggle();//切換顯示隱藏
                $('.box').slideToggle();//切換上收和下展
            })
        })
    </script>
jQuery動畫

通過animate方法可以設(shè)置元素某屬性值上的動畫靴拱,可以設(shè)置一個或多個屬性值国觉,動畫執(zhí)行完成后會執(zhí)行一個函數(shù)。

參數(shù):
1又憨、什么屬性做動畫翠霍,屬性設(shè)置{param1: value1, param2: value2}
2、動畫執(zhí)行的時間蠢莺,單位毫秒
3寒匙、動畫曲線:
swing(默認值)開始和結(jié)束慢,中間快
linear勻速
可省略不寫
4躏将、回調(diào)函數(shù)锄弱,動畫完成之后要做的事情,可無限嵌套

$('#div1').animate({
    width:300,
    height:300
},1000,swing,function(){
    alert('done!');
});
參數(shù)可以寫成數(shù)字表達式:

$('#div1').animate({
    width:'+=100',
    height:300
},1000,swing,function(){
    alert('done!');
});
jQuery循環(huán)
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
    <script type="text/javascript">
        $(function(){
            // //給全部的li設(shè)置內(nèi)容和樣式
            // $('.list li').html('111');
            // $('.list li').css({background:'gold'});

            //第一個參數(shù)index是索引值
            $('.list li').each(function(index) {
                // alert(index);//彈出索引值
                
                //$(this)是每一個li
                $(this).html(index);
            });
        })
    </script>
</head>
<body>
    <ul class="list">
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>
</body>
尺寸相關(guān)祸憋、滾動事件

1会宪、獲取和設(shè)置元素的尺寸

width()、height() 獲取元素width和height
innerWidth()蚯窥、innerHeight() 包括padding的width和height
outerWidth()掸鹅、outerHeight() 包括padding和border的width和height
outerWidth(true)、outerHeight(true) 包括padding和border以及margin的width和height

2拦赠、獲取元素相對頁面的絕對位置

offse()
3巍沙、獲取可視區(qū)高度

$(window).height();
4、獲取頁面高度

$(document).height();
5荷鼠、獲取頁面滾動距離

$(document).scrollTop();  
$(document).scrollLeft();

6句携、頁面滾動事件

$(window).scroll(function(){  
    ......  
})
jquery事件

事件函數(shù)列表:

blur() 元素失去焦點
focus() 元素獲得焦點
change() 表單元素的值發(fā)生變化
click() 鼠標單擊
dblclick() 鼠標雙擊
mouseover() 鼠標進入(進入子元素也觸發(fā))

mouseout() 鼠標離開(離開子元素也觸發(fā))
mouseenter() 鼠標進入(進入子元素不觸發(fā))
mouseleave() 鼠標離開(離開子元素不觸發(fā))
hover() 同時為mouseenter和mouseleave事件指定處理函數(shù)
mouseup() 松開鼠標
mousedown() 按下鼠標
mousemove() 鼠標在元素內(nèi)部移動
keydown() 按下鍵盤
keypress() 按下鍵盤
keyup() 松開鍵盤
load() 元素加載完畢
ready() DOM加載完成
resize() 瀏覽器窗口的大小發(fā)生改變
scroll() 滾動條的位置發(fā)生變化
select() 用戶選中文本框中的內(nèi)容
submit() 用戶遞交表單
toggle() 根據(jù)鼠標點擊的次數(shù),依次運行多個函數(shù)
unload() 用戶離開頁面

綁定事件的其他方式

$(function(){
    $('#div1').bind('mouseover click', function(event) {
        alert($(this).html());
    });
});

取消綁定事件

$(function(){
    $('#div1').bind('mouseover click', function(event) {
        alert($(this).html());

        // $(this).unbind();
        $(this).unbind('mouseover');

    });
});
主動觸發(fā)與自定義事件
  • 主動觸發(fā)
    可使用jquery對象上的trigger方法來觸發(fā)對象上綁定的事件颊咬。

  • 自定義事件
    除了系統(tǒng)事件外务甥,可以通過bind方法自定義事件牡辽,然后用tiggle方法觸發(fā)這些事件喳篇。

//給element綁定hello事件
element.bind("hello",function(){
    alert("hello world!");
});
//觸發(fā)hello事件
element.trigger("hello");

例:

<script type="text/javascript">
        $(function(){
            //自定義事件只能用bind方式綁定,第一個參數(shù)是事件的名字态辛,第二個參數(shù)是事件發(fā)生時執(zhí)行的函數(shù)
            $('#btn1').bind('hello', function(){
                alert('hello');
            })
            $('#btn1').bind('click', function(){
                alert('click');
            })
            $('#btn2').click(function() {
                // trigger即可以觸發(fā)自定義事件麸澜,也可以觸發(fā)原始的事件
                $('#btn1').trigger('hello');
                $('#btn1').trigger('click');
            });
            
            //不一定點擊按鈕觸發(fā),也可頁面加載時觸發(fā)奏黑,也可在滿足某種if條件時觸發(fā)
            // $('#btn1').trigger('hello');
        })
    </script>
</head>
<body>
    <input type="button" value="按鈕" id="btn1">
    <input type="button" value="按鈕2" id="btn2">
事件冒泡
  • 什么是事件冒泡
    在一個對象上觸發(fā)某類事件(比如單擊onclick事件)炊邦,如果此對象定義了此事件的處理程序编矾,那么此事件就會調(diào)用這個處理程序,如果沒有定義此事件處理程序或者事件返回true馁害,那么這個事件會向這個對象的父級對象傳播窄俏,從里到外,直至它被處理(父級對象所有同類事件都將被激活)碘菜,或者它到達了對象層次的最頂層凹蜈,即document對象(有些瀏覽器是window)。

  • 事件冒泡的作用
    事件冒泡允許多個操作被集中處理(把事件處理器添加到一個父級元素上忍啸,避免把事件處理器添加到多個子級元素上)仰坦,它還可以讓你在對象層的不同級別捕獲事件。

  • 阻止事件冒泡
    事件冒泡機制有時候是不需要的计雌,需要阻止掉悄晃,通過 event.stopPropagation() 來阻止

$(function(){
    var $box1 = $('.father');
    var $box2 = $('.son');
    var $box3 = $('.grandson');
    $box1.click(function() {
        alert('father');
    });
    $box2.click(function() {
        alert('son');
    });
    $box3.click(function(event) {
        alert('grandson');
        event.stopPropagation();

    });
    $(document).click(function(event) {
        alert('grandfather');
    });
})

......

<div class="father">
    <div class="son">
        <div class="grandson"></div>
    </div>
</div>

阻止默認行為
阻止右鍵菜單

$(document).contextmenu(function(event) {
    event.preventDefault();
});

合并阻止操作
實際開發(fā)中,一般把阻止冒泡和阻止默認行為合并起來寫凿滤,合并寫法可以用

// event.stopPropagation();
// event.preventDefault();

// 合并寫法:
return false;
事件委托
  • 事件委托就是利用冒泡的原理妈橄,把事件加到父級上,通過判斷事件來源的子集翁脆,執(zhí)行相應(yīng)的操作眷细,事件委托首先可以極大減少事件綁定次數(shù),提高性能鹃祖;其次可以讓新加入的子元素也可以擁有相同的操作溪椎。

一般綁定事件的寫法

$(function(){
    $ali = $('#list li');
    $ali.click(function(event) {
        $(this).css({background:'red'});
    });
})
...
<ul id="list">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>

事件委托的寫法

$(function(){
    $list = $('#list');
    $list.delegate('li', 'click', function(event) {
        $(this).css({background:'red'});
    });
})
...
<ul id="list">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>

取消事件委托

// ev.delegateTarge 委托對象
$(ev.delegateTarge).undelegate();

// 上面的例子可使用 $list.undelegate();
例:

<style type="text/css">
        .list{
            list-style: none;
        }

        .list li{
            height: 30px;
            background-color: green;
            margin-bottom: 10px;
            color: #fff;
        }
    </style>
    <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
    <script type="text/javascript">
        $(function(){
            /*
            給每個li綁定事件,一共綁定了8次恬口,性能不高
            $('.list li').click(function() {
                alert($(this).html());
            });
            */

            /*
            事件委托:方法delegate校读,只綁定一次事件,冒泡觸發(fā)
                參數(shù):
                    selector選擇器:寫入ul下面的所有要發(fā)生事件的元素祖能,多個元素用空格隔開歉秫,例如‘li a span’
                    eventType事件
                    function要執(zhí)行的操作
            
            $('.list').delegate('li', 'click', function() {
                //$(this)指發(fā)生事件的子集,即每個li
                alert($(this).html());

                //全部取消委托
                $('.list').undelegate();
            });
        })
    </script>
</head>
<body>
    <ul class="list">
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
    </ul>
</body>
jquery元素節(jié)點操作

*創(chuàng)建節(jié)點

var $div = $('<div>');
var $div2 = $('<div>這是一個div元素</div>');

插入節(jié)點
1养铸、append()和appendTo():在現(xiàn)存元素的內(nèi)部雁芙,從后面插入元素

var $span = $('<span>這是一個span元素</span>');
$('#div1').append($span);
......
<div id="div1"></div>

2、prepend()和prependTo():在現(xiàn)存元素的內(nèi)部钞螟,從前面插入元素

3兔甘、after()和insertAfter():在現(xiàn)存元素的外部,從后面插入元素

4鳞滨、before()和insertBefore():在現(xiàn)存元素的外部洞焙,從前面插入元素

刪除節(jié)點

$('#div1').remove();

例:

<script type="text/javascript">
        $(function(){
            var $span = $('<span>span元素</span>');
            var $p = $('<p>p段落元素</p>');
            var $h = $('<h1>頁面標題</h1>');

            /*插入子元素*/
            //div中插入span和p(末尾追加)
            // $('#div1').append($span);
            // $('#div1').append($p);

            // 把span和p插入div中
            $span.appendTo('#div1');
            $p.appendTo('#div1');

            //把子元素插入到父元素(前面追加)
            // $('#div1').prepend($span);
            // $('#div1').prepend($p);
            // $span.prependTo('#div1');
            // $p.prependTo('#div1');

            //在div前邊插入兄弟h1標題
            // $('#div1').before($h);
            $h.insertBefore('#div1');

            //在后邊插入兄弟元素
            //after()
            //insertAfter()

            //刪除p標簽
            $p.remove();    
        })
    </script>
</head>
<body>
    <div id="div1"></div>
</body>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子澡匪,更是在濱河造成了極大的恐慌熔任,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件唁情,死亡現(xiàn)場離奇詭異疑苔,居然都是意外死亡,警方通過查閱死者的電腦和手機甸鸟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門夯巷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人哀墓,你說我怎么就攤上這事趁餐。” “怎么了篮绰?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵后雷,是天一觀的道長。 經(jīng)常有香客問我吠各,道長臀突,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任贾漏,我火速辦了婚禮候学,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘纵散。我一直安慰自己梳码,他們只是感情好,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布伍掀。 她就那樣靜靜地躺著掰茶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蜜笤。 梳的紋絲不亂的頭發(fā)上濒蒋,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天,我揣著相機與錄音把兔,去河邊找鬼沪伙。 笑死,一個胖子當著我的面吹牛县好,可吹牛的內(nèi)容都是我干的围橡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼聘惦,長吁一口氣:“原來是場噩夢啊……” “哼某饰!你這毒婦竟也來了儒恋?” 一聲冷哼從身側(cè)響起善绎,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤黔漂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后禀酱,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體炬守,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年剂跟,在試婚紗的時候發(fā)現(xiàn)自己被綠了减途。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡曹洽,死狀恐怖鳍置,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情送淆,我是刑警寧澤税产,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站偷崩,受9級特大地震影響辟拷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜阐斜,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一衫冻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧谒出,春花似錦隅俘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至莉测,卻和暖如春颜骤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背捣卤。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工忍抽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人董朝。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓鸠项,卻偏偏與公主長得像,于是被迫代替她去往敵國和親子姜。 傳聞我的和親對象是個殘疾皇子祟绊,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容