jQuery基础:上(样式及DOM操作)

        //jQuery封装了自己的js方法,因此掩盖了js带来的兼容问题
        var $div = $('#imooc');
        $div.html('hello,bitch!').css('color','red');

        //.get(index)方法可以将jQuery对象转化为DOM对象
        var $p = $('p');
        $p.get(1).style.color = 'red';

        //$()操作符对DOM对象使用时可以将DOM对象转化为jQuery对象
        var p = document.getElementsByTagName('p');
        var $p = $(p);
        $p.last().html('w qu bu qu !').css('color','#ddd');

        //常见的层级选择器的使用
        $('body > #imooc').html("I am body's son");
        $('pre sub');
        $(' #imooc + p').html("o sb");
        $('.i1 ~ p').html("e sb");

        //常见的筛选选择器的使用
        $(':first');        //$('body:first');
        $(':last');
        $(':not(selector)');
        $(':eq(index)');
        $(':gt(index)');
        $(':lt(index)');
        $(':even');
        $(':odd');
        $(':header');
        $(':lang(language)');
        $(':root');
        $(':animated');

        //内容筛选选择器
        $(":contains(text)");
        $(':parent');
        $(':empty');
        $(":has(selector)")

        //可见性筛选器
        $(":visible");
        $(":hidden");

        //子元素筛选选择器
        $(":first-child");
        $(":last-child");
        $(":only-child");

        //表单元素选择器
        $(':input')
        $(':text')
        $(':radio')
        $(':checkbox')
        $(':button')
        $(':password')
        $(':image')
        $(':reset')

        //表单对象属性筛选器
        $(':checked')
        $(':selected')
        $(':enabled')
        $(':disabled')

        //this选择器
        $('p.i1').click(function() {          //p.i1注意这种选择方式
            var $this = $(this);
            $this.css('color','#ddd');
        })

        //.attr()和.removeAttr()
        $('.i1').attr('class');
        $('.i1').attr('title','p');
        $('.i1').attr({'title':'p','name':'Eric'});
        //.attr的函数方法,第一个参数书要操作的属性,第二个参数是回调函数
        //回调函数接受两个参数,第一个是选择器的索引,第二个是索引对应的属性值。
        $('p').attr('class',function(m,cla){
            // alert(cla);
            switch(m) {
                case 0 :
                    return 'a';
                    break;
                case 1:
                    return 'b';
                    break;
                case 2:
                    return 'c';

            }
        })

        //.html()和.text()
        $('.i1').html();
        $('.i1').html('w qu ni nainai');
        $('p').html(function(index,oldHtml) {
            switch(index) {
                case 0:
                    return 'w qu ni baba';
                    break;
                case 1:
                    return 'w qu ni yeye';
                    break;
                case 2:
                    return "w qu ni da yi ma"
            }
        })
        //.text()方法和html()类似三种用法,但是只对文本内容处理,html是对整个html节点处理。

        //.val()处理表单元素的value值,同样三种用法。

        //.addClass()和.removeClass()
        $('p').addClass(function( index,currentClass) {
            switch(index) {
                case 0:
                    return 'i9';
                    break;
                case 1:
                    return 'i2';
                    break;
                case 2:
                    return "i3"            
            }
        });
        $('.i9').addClass('i2');

        //.toggleClass()切换样式

        //.css()设置样式

        //元素的数据存储
        //1.静态方法
        $('.i2').click(function() {
            var ele = $(this);
            $.data(ele,'a','a is babb');
            var reset = $.data(ele,'a');
            ele.text(reset);
        });
        $('.i3').click(function() {
            var ele = $(this);
            ele.data('b','b is your baba');
            var reset = ele.data('b');
            ele.html(reset);
        })


        //jQuery创建节点的方法
        $('body').on('click',function() {
            var ele = $('<div class="i5"> 我是jQuery创建的新节点</div>');
            $(this).append(ele);
        })

        //.append()和.appendTo()内部尾部添加节点
        //.prepend() .prependTo()内部首部添加节点

        //.before()和.after()外部添加节点
        //.insertBefore() .insertAfter() 与之前两个方法功能相同,单数相反。

        //.empty()清除元素的子节点,但保留自身标记。

        //.remove()会销毁绑定的事件,从而避免内存泄漏
        //.remove()的有参用法可以进一步筛选。
        // $('p').filter(":contains('yeye')").remove();
        $('p').remove(":contains('yeye')");

        //.detach() 将元素暂时性的去除,但保留所有的事件和属性数据。
        var p = $('p').detach();
        $('body').prepend(p);
        
        //.clone()克隆元素整个节点
        //.clone(true)复制整个节点以及绑定的事件和属性数据。但是属性数据中的对象和数组只复制引用。

        //.repalceWith() 和.replaceAll()替换节点
        //这两个方法返回的jQuery对象是替换前的节点,而不是新的节点。

        //.wrap(),包裹当前元素,返回值为当前元素。
        $('.i3')
        .wrap(function() {
            return '<div><div></div></div>';
        })
        .css('background-color','red');
        //也可以把函数换成在.wrap()的参数中写入html内容。

        //.unwrap()方法删除父元素,没有参数,保留自身和兄弟元素。

        //.wrapAll()可以将多个元素包裹父元素
        //.wrapAll(function() {})可以在回调函数中对每个元素执行包裹操作。

        //.wrapInner()将当前元素下的所有子元素用指定的元素包裹起来,作为当前元素的子元素。

        //.children()遍历元素的一级子元素。
        //.children('.selector')遍历元素的筛选之后的一级子元素。

        //.find('.selector')查找后代

        //.parent() 查找当前元素的父元素
        //.parent()可以接受参数筛选器,例如
        //$('div').parent(":last")

        //.parents()

        //.closest()

        //.next()

        //.prev()

        //.siblings()

        //.add() 将元素(jQuery对象或者DOM或者HTML片段)添加到jQuery合集中。

        //.each() 对jQuery合集对象的遍历操作,each()中的回调函数有两个实参,索引和迭代元素。

猜你喜欢

转载自www.cnblogs.com/FunkyEric/p/9179623.html