jquery

2018-09-19  本文已影响0人  岸与海

介绍

jQuery是目前使用最广泛的javascript函数库。据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库。微软公司甚至把jQuery作为他们的官方库。

jquery选择器

jquery选择器可以快速地选择元素,选择规则和css样式相同,使用length属性判断是否选择成功。

(document) //选择整个文档对象('li') //选择所有的li元素
('#myId') //选择id为myId的网页元素('.myClass') // 选择class为myClass的元素
('input[name=first]') // 选择name属性等于first的input元素('#ul1 li span') //选择id为为ul1元素下的所有li下的span元素

对选择集进行修饰过滤(类似CSS伪类)

('#ul1 li:first') //选择id为ul1元素下的第一个li('#ul1 li:odd') //选择id为ul1元素下的li的奇数行
('#ul1 li:eq(2)') //选择id为ul1元素下的第3个li('#ul1 li:gt(2)') // 选择id为ul1元素下的前三个之后的li
('#myForm :input') // 选择表单中的input元素('div:visible') //选择可见的div元素

对选择集进行函数过滤

('div').has('p'); // 选择包含p元素的div元素('div').not('.myClass'); //选择class不等于myClass的div元素
('div').filter('.myClass'); //选择class等于myClass的div元素('div').first(); //选择第1个div元素
$('div').eq(5); //选择第6个div元素

选择集转移

('div').prev('p'); //选择div元素前面的第一个p元素('div').next('p'); //选择div元素后面的第一个p元素
('div').closest('form'); //选择离div最近的那个form父元素('div').parent(); //选择div的父元素
('div').children(); //选择div的所有子元素('div').siblings(); //选择div的同级元素
$('div').find('.myClass'); //选择div内的cl

jquery样式操作

操作行间样式

// 获取div的样式
("div").css("width");("div").css("color");

//设置div的样式
("div").css("width","30px");("div").css("height","30px");
$("div").css({fontSize:"30px",color:"red"});

操作样式类名

("#div1").addClass("divClass2") //为id为div1的对象追加样式divClass2("#div1").removeClass("divClass") //移除id为div1的对象的class名为divClass的样式
("#div1").removeClass("divClass divClass2") //移除多个样式("#div1").toggleClass("anotherClass") //重复切换anotherClass样式

jquery属性操作

  1. html() 取出或设置html内容

// 取出html内容
var htm =('#div1').html();
// 设置html内容
$('#div1').html('<span>添加文字</span>');

  1. text() 取出或设置text内容

// 取出文本内容
var htm =('#div1').text();
// 设置文本内容
$('#div1').text('<span>添加文字</span>');

  1. attr() 取出或设置某个属性的值

// 取出图片的地址
var src =('#img1').attr('src');
// 设置图片的地址和alt属性
$('#img1').attr({ src: "test.jpg", alt: "Test Image" });

绑定click事件

$('#btn1').click(function(){

// 内部的this指的是原生对象
// 使用jquery对象用 $(this)
})

jquery特殊效果

fadeIn() 淡入

    $btn.click(function(){

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

    });

fadeOut() 淡出
fadeToggle() 切换淡入淡出
hide() 隐藏元素
show() 显示元素
toggle() 依次展示或隐藏某个元素
slideDown() 向下展开
slideUp() 向上卷起
slideToggle() 依次展开或卷起某个元素

选项卡

.btns{
            width: 500px;
            height: 50px;
        }
        /*选项卡的样式*/
        .btns input{
            width: 100px;
            height: 50px;
            background-color: #ddd;/*默认灰色*/
            color: #666;
            border: 0px;
        }
        /*被选中的选项卡的样式*/
        .btns input.cur{
            background-color: gold;
        }
        /*内容区的样式*/
        .contents div{
            width: 500px;
            height: 300px;
            background-color: gold;
            display: none;/*默认隐藏*/
            line-height: 300px;
            text-align: center;
        }
        /*被选中的内容区的样式*/
        .contents div.active{
            display: block;
        }
    </style>
    <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
    <script type="text/javascript">
        $(function(){
            $('#btns input').click(function() {
                //失去焦点,避免出现默认的蓝框
                $(this).blur();
                //this是原生的对象
                // alert(this);//弹出[object HTMLInputElement],说明this就是当前点击的input元素

                //jQuery的this对象使用时要用$()包起来,这样就可以调用jQuery的方法了
                //给当前元素添加选中样式,为兄弟元素移除选中样式
                $(this).addClass('cur').siblings().removeClass('cur');

                //$(this).index()获取当前按钮所在层级范围的索引值
                //显示对应索引的内容区,隐藏其它兄弟内容区
                $('#contents div').eq($(this).index()).addClass('active').siblings().removeClass('active');
            });
        })

事件委托

事件委托就是利用冒泡的原理,把事件加到父级上,通过判断事件来源的子集,执行相应的操作,事件委托首先可以极大减少事件绑定次数,提高性能;其次可以让新加入的子元素也可以拥有相同的操作。

$(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>
上一篇下一篇

猜你喜欢

热点阅读