Jquery基础知识(一)--样式

jquery属性样式

使用attr属性以及removeAttr属性


attr:

1 attr(传入属性名):获取属性的值

2 attr(属性名, 属性值):设置属性的值

3 attr(属性名,函数值):设置属性的函数值

4 attr(attributes):给指定元素设置多个属性值,即:{属性名一: “属性值一” , 属性名二: “属性值二” , … … }


removeAttr:

.removeAttr( attributeName ) : 为匹配的元素集合中的每个元素中移除一个属性(attribute)

Attribute和properties的区别:

attribute是特性,就是dom节点自带的属性。

例如html中常用的id,class,title,aligen之类的


而properties是属性,是dom作为对象附加的内容

例如:nodeName,tagName之类的

获取attribute就使用attr

获取properties就使用prop


//找到第一个input,通过attr设置属性value的值

$('input:first').attr('value','.attr( attributeName, value )’)


//找到第二个input,通过attr获取属性value的值

$(‘input:eq(1)').attr('value')


//找到第三个input,通过使用一个函数来设置属性

//可以根据该元素上的其它属性值返回最终所需的属性值

//例如,我们可以把新的值与现有的值联系在一起:

$('input:eq(2)').attr('value',function(i, val){

    return '通过function设置' + val

    })


//找到第四个input,通过使用removeAttr删除属性

$(‘input:eq(3)').removeAttr('value')


jQuery的属性与样式之html()及.text()

使用html()的三种方法:

1.不传入值,获取集合中第一个匹配元素hmtl内容即[html()]

2.hmtl(string)设置每一个匹配元素的html内容

3.html(function(index,oldhtml))返回设置html内容的一个函数


注意:hmtl()使用是dom的innerhmtl属性,所以这个操作不仅仅针对文本还针对整个hmtl内容


.text():

使用的三种方法:

1.text()得到匹配元素中每个元素的合并文本,包括他们的后代

2.text(string)设置匹配元素 内容的文本

3.text(function(index,text))返回设置文本 内容的一个函数


注意:

text()返回一个字符串,包含所有匹配元素的合并文本


相同与不同点:

1.处理对象不同

2.hmtl只能用在hmtl文档中,text能用在xm和hmtl中

3.hmtl处理的事元素内容,text处理的是文本内容

4.如果处理的对象是一个文本节点,html与text相同

5.火狐不支持innertext,text()兼容了所有浏览器


.val()

主要用于处理表单

使用方法:

1.val()获取匹配元素集合第一个元素的当前值

2.val(string)设置匹配元素集合中每个元素的值

3.val(function)返回设置值的函数


注意:

1.通过val()处理select,当没有选择像被选择返回null

2.val()多用来设置表单字段

3.如果select有多个选择属性即有multiple="multiple"属性,val方法返回每个被选中的属性项的集合


1 html(),.text(),.val()三种方法都是用来读取选定元素的内容;只不过.html()是用来读取元素的html内容(包括html标签),.text()用来读取元素的纯文本内容,包括其后代元素,.val()是用来读取表单元素的"value"值。其中.html()和.text()方法不能使用在表单元素上,而.val()只能使用在表单元素上;另外.html()方法使用在多个元素上时,只读取第一个元素;.val()方法和.html()相同,如果其应用在多个元素上时,只能读取第一个表单元素的"value"值,但是.text()和他们不一样,如果.text()应用在多个元素上时,将会读取所有选中元素的文本内容。

2 .html(htmlString),.text(textString)和.val(value)三种方法都是用来替换选中元素的内容,如果三个方法同时运用在多个元素上时,那么将会替换所有选中元素的内容。

3 .html(),.text(),.val()都可以使用回调函数的返回值来动态的改变多个元素的内容。


addclass()

addClass(classname):为每个匹配元素都增加一个或多个样式名

addClass(function(index,currentClass)):返回一个或多个用空格隔开的增加的样式


注意:不是替换,使增加一个类名到元素上


.removeClass()

1 .removeClass( [className ] ):每个匹配元素移除的一个或多个用空格隔开的样式名

2 .removeClass( function(index, class) ) : 一个函数,返回一个或多个将要被移除的样式名


注意:

如果一个样式类名作为一个参数,只有这样式类会被从匹配的元素集合中删除 。 如果没有样式名作为参数,那么所有的样式类将被移除


.toggleClass()

一次执行相当于add第二次执行相当于remove

取决于是否存在这个属性,如果存在就删除,如果不存在就添加


1 toggleClass( className ):在匹配的元素集合中的每个元素上用来切换的一个或多个(用空格隔开)样式类名

2 .toggleClass( className, switch ):一个布尔值,用于判断样式是否应该被添加或移除

    //第二个参数判断样式类是否应该被添加或删除

    //true,那么这个样式类将被添加;

    //false,那么这个样式类将被移除


3 .toggleClass( [switch ] ):一个用来判断样式类添加还是移除的 布尔值

4 .toggleClass( function(index, class, switch) [, switch ] ):用来返回在匹配的元素集合中的每个元素上用来切换的样式类名的一个函数。接收元素的索引位置和元素旧的样式类作为参数


.css()

获取:

1 .css( propertyName ) :获取匹配元素集合中的第一个元素的样式属性的计算值

2 .css( propertyNames ):传递一组数组,返回一个对象结果

设置:

1  .css(propertyName, value ):设置CSS

2 .css( propertyName, function ):可以传入一个回调函数,返回取到对应的值进行处理

3 .css( properties ):可以传一个对象,同时设置多个样式


注意:当一个数只被作为值(value)的时候, jQuery会将其转换为一个字符串,并添在字符串的结尾处添加px,例如 .css("width",50}) 与 .css("width","50px"})一样

//颜色都会转化成统一的rgb标示

css("background-color") 


//字体大小都会转化成统px大小 em=>px

css(“font-size”)


//获取尺寸,传入CSS属性组成的一个数组

//{width: "60px", height: "60px"}

var value = $(‘.first’).css(['width','height']);


//多种写法设置颜色

$(‘.fourth’).css("background-color","red")


//多种写法设置字体大小

$('.fourth').css("font-size","15px")

$(‘.fifth’).css("font-size","0.9em")


//获取到指定元素的宽度,在回调返回宽度值

//通过处理这个value,重新设置新的宽度

$('.sixth').css("width",

    function(index,value){

        value=value.split('px');

        return (Number(value[0]+50)+value[1])

    }

    )

var value = value.split('px');这就是相当于把原先的value分割了

举个例子,原来的value=50px。

那么现在value变成一个数组了,value[0]=50,value[1]='px';

然后Number函数就是转化为数值类型,就相当于return Number(50+50)+’px';

函数方式第一个参数是一个属性,以上面这个例子来解释就是当前的sixth的width,其实跟下面这个代码效果是一样的


//合并设置,通过对象传设置多个样式

$('.seventh').css({

            'font-size'        :"15px",

            "background-color" :"#40E0D0",

            "border"           :"1px solid red"

        })


.css()与.addClass()设置样式的区别

1.通过.addClass()我们可以批量的给相同的元素设置统一规则,变动起来比较方便,可以统一修改删除。如果通过.css()方法就需要指定每一个元素是一一的修改,日后维护也要一一的修改,比较麻烦

2..addClass()本质只是针对class的类的增加删除,不能获取到指定样式的属性的值,.css()可以获取到指定的样式值。

3.css的样式是有优先级的,当外部样式、内部样式和内联样式同一样式规则同时应用于同一个元素的时候,优先级如下

外部样式 < 内部样式 < 内联样式


元素的数据存储

允许你在普通的元素标签里嵌入类似data-*的属性,来实现一些简单数据的存取。它的数量不受限制,并且也能由JavaScript动态修改,

jQuery提供的存储接口

jQuery.data( element, key, value )   //静态接口,存数据

jQuery.data( element, key )  //静态接口,取数据   

.data( key, value ) //实例接口,存数据

.data( key ) //实例接口,存数据

建议用.data()方法来代替


jQuery.removeData( element [, name ] )

.removeData( [name ] )


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值