JQ中css()可以修改html中的文字颜色 字体,attr()也可以吗?还是他只可以修改特定元
attr可以修改html标签上展示为xxx=""任意属性值,css只能修改属性名为style的值,也就是style=""里面的值
不太严格地说:
1.attr()是操作元素的属性。
2.css()是操作元素的style属性。
前者可以修改的src属性,可以修改的href属性, 可以修改的title属性。然而后者却不行,他它只能修改样式相关的特征。
所以,后者是前者的子集,只是对 style这个特定的属性进行
jQuery中
css()方法是获取/修改样式属性(和style有关)的
attr()是获取/修改元素的属性(和Html标签有关)的,比如下面的:
Html
Javascript
//css()
var color = $("#a").css("color"); //只有一个参数时,是获取div#a的color,返回red
$("#a").css("color","blue"); //两个参数时,是设置对应的 样式属性,这里是这只文本color为blue
// $("#a").css({"color":"blue","fontWeight":"normal"});//也支持对象形式进行设置样式
//attr()
var id = $("#a").attr("data-id"); //获取div#a 上面的data-id属性的值;当然,style,class,id这三个都可以获取到,因为这些都是Html元素的 属性
//$("#a").attr("data-id",2);//设置div#a上面的data-id属性为2,假如是一个不存在的属性,使用这个代码,就会添加这个属性到匹配到的元素上面 ,如$("#a").attr("data-width","100px");,使用这个,div#aHtml元素上面就会新增一个data-width的属性
});
attr函数是获取或修改属性
任何写作HTML标签里的属性都可以获取或修改,包括你自定义的属性,比如
简单的说,如果你要设置一个元素的 style="display:none",那么 .css 你要这样写:
$('#elem').css('display', 'none');
// 约等于
document.getElementById('elem').style.display = 'none';
使用 attr 你就得这样写:
var elem = $('#elem');
style = elem.attr('style') || '';
elem.attr('style', style + ';display:none;');
// 约等于
var elem = document.getElementById('elem'),
style = elem.cssText || '';
elem.cssText += ';display:none;';
.attr('style') 得到的是字符串,而 .css 操作的是对象
attr可以修改html标签上展示为xxx=""任意属性值,css只能修改属性名为style的值,也就是style=""里面的值
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。