Day02(jQ属性操作,筛选,demo五星好评)

2017-10-10  本文已影响0人  AnnQi

jQuery属性操作

1.添加或者修改属性 attr();

第一种写法:普通写法
如果原来有这个属性,就在原本属性上面修改,如果没有,则添加这个属性

box.attr('class','tc');
box.attr('init','big')

第二种写法:连缀写法

box.attr('class','tc').attr('init','big').attr('index','100');

第三种写法:对象写法

box.attr({   //大括号一定不能漏掉
    'class':'ttl',
    'init':'small',
    'ps':'ps'//最后一条不要给逗号了
});

移除属性 removeAttr;

box.removeAttr('class');
box.removeAttr('class').attr('init','ps');      //移除属性和添加属性可以同时使用
2.class操作

添加class addClass

box.addClass('tc');    //在你已经有了的class里面添加,会帮你用空格隔开

移除class removeClass();

box.removeClass('ct').addClass('opp')     //添加删除同样可以一起用
3.内容获取与操作
var txt=box.html()//获取元素内容
console.log(txt)
4.设置内容
box.click(function(){
        box.html('我变成一头牛了')
    });
//如果设置的内容带有标签的话,就会对标签进行解析



box.click(function(){
    box.html('<ul><li>现在我是一个标签</li></ul>')
});
//text()和html()十分相似,看不出什么区别
//那么,他们唯一的区别,就是text()不会解析标签
//html()会解析标签,text()不管里面是什么,都给你输出纯文本;
box.click(function(){
    box.text('<ul><li>现在我是一个标签</li></ul>')
});
5.获取 input:text 的值
box.click(function(){
    console.log($(':text').val())//获取input的内容值
});
6.CSS的样式操作
box.click(function(){
    box.css({
        'height':'500px',
        'width':'500px',
        'background':'red'
    });
});
7.获取内容宽高
        /*//获取内容宽高
        alert(box.width());
        
        //获取可视区域的宽高
        alert(box.innerWidth());//width+padding
        
        //获取width+padding+border
        alert(box.outerWidth())*/
        
        
        //设置宽高
        box.width(400);
        box.height('400px')
8.获取与设置位置
        //获取与设置位置
        //offset 位置是相对于页面来定位的
        //哪怕元素基于父元素定位,offset穿回来的值还是基于网页的

        var box=$('#box');
        alert('left:'+box.offset().left+",top:"+box.offset().top);*/
        $('.mian').click(function(){

            //$('#box').offset().left='100px';   错误的写法

            $('#box').offset({   //正确写法
                left:100,
                top:50
            });
        });



/*var box=$('#box');
//offset只能获取距离网页的位置
//那么当我们根据父级定位的时候,获取距离父级的位置,则用:position;
//注意,position是只读,不可修改;

alert('left:'+box.offset().left+",top:"+box.offset().top);
alert('left:'+box.position().left+",top:"+box.position().top);*/

        //获取页面卷入高度:
        window.onscroll=function(){
            console.log($(document).scrollTop())
        }

筛选

1.过滤

eq(); 查找JQ对象中的指定索引对象;
eq(i) 通过索引值找到对象,和 arr[i] 意思一样,只不过是jq的方法而已

var lis = $('.uls li');

lis.eq(2).css('color','red')
console.log(lis.eq(2))
2.first() 查找第一个
lis.first().css('color','red')
3.last()查找最后一个
lis.last().css('color','aqua')
4.hasClass

判断一个JQ对象中是否具有指定的class,只要集合中有一个对象包含指定class,就返回true
要注意,它返回的查找的对象,而是true布尔值

console.log(lis.hasClass('lis-3'))
5.is() 判断当前jq对象是否是指定的类型、选择器
console.log(lis.eq(2).is('li'))    //判断当前jq对象是不是li
console.log(lis.eq(2).is(lis))   //判断是否是lis里面的
console.log(lis.eq(2).is(':nth-of-type(3)'));    //判断是否是当前集合的第三个元素*
6.map()给jq中的每一个对象一个函数,参数只能是函数
btn.click(function(){
        lis.map(function(){
        console.log($(this).index())
    })
});
7.has() 选择子元素有指定的选择器或者标签的元素
$('li').has('[class]').css('color','red');
$('li').has('p').css('color','red');
8.not() 除了括号里面的其他元素
var lisn = lis.not('[class]').css('color','red')
console.log(lisn);
9.slice() 根据范围选择
lis.slice(2).css('color','red');      //从2开始截取,2后面的都被选中
lis.slice(2,5).css('color','red');     // 截取2-5之间的元素
lis.slice(-5,-2).css('color','red')    // 倒过来截取

demo 五星好评

<style>
            *{
                margin: 0;
                padding: 0;
            }
            ul{
                list-style: none;
                font-size: 40px;
                text-align: center;
                line-height: 40px;
                margin: 100px;
            }
            ul li {
                float: left;
                cursor: pointer;
                width: 40px;
                color: red;
            }
            
        </style>
<ul>
    <li>☆</li>
    <li>☆</li>
    <li>☆</li>
    <li>☆</li>
    <li>☆</li>
</ul>
<script type="text/javascript" src="jquery-3.2.1.min.js"></script>
    <script type="text/javascript">
        $(function(){
            var ul = $("ul>li");
            var wjx1 = "☆",wjx2 = "★";
            
            
            ul.mouseenter(function(){
                $(this).html(wjx2).prevAll().html(wjx2).end().nextAll().html(wjx1);
            }).click(function(){
                $(this).addClass("checked").siblings().removeClass("checked");
            })
            
            ul.mouseout(function(){
                ul.text(wjx1);
                $('.checked').text(wjx2).prevAll().text(wjx2).end().nextAll().text(wjx1);
            })
                
        });
        
    </script>
上一篇下一篇

猜你喜欢

热点阅读