您好!欢迎访问家园网-www.jy.wang!

家园网

attr方法

网络 作者:本站 点击:
<script type="text/javascript" src="JS/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
	$(document).ready(function() {
	   $(":checkbox").attr("checked","checked");			//选中复选框
	   $(":radio").attr("checked","checked");						//选中单选按钮
	   $(":image").attr("src","images/fish1.jpg");				//设置图片路径
	   $(":file").hide();									//隐藏文件域
	   $(":password").val("123");							//设置密码域的值
	   $(":text").val("文本框");								//设置文本框的值
	   $(":button").attr("disabled","disabled");				//设置按钮不可用
	   $(":reset").val("重置按钮");							//设置重置按钮的值
	   $(":submit").val("提交按钮");						//设置提交按钮的值
	   $("#testDiv").append($("input:hidden:eq(1)").val());		//显示隐藏域的值
	 });
</script>

我来逐行讲解这段 jQuery 代码:

第1行:‌ $(document).ready(function() {

  • 这是 jQuery 的文档就绪函数,确保在 DOM 完全加载后执行其中的代码

第2行:‌ $(":checkbox").attr("checked","checked");

  • 选中页面中所有的复选框(checkbox)

  • .attr("checked","checked") 为复选框添加 checked 属性,使其默认被选中

第3行:‌ $(":radio").attr("checked","checked");

  • 选中页面中所有的单选按钮(radio button)

  • 同样使用 .attr() 方法设置 checked 属性

第4行:‌ $(":image").attr("src","images/fish1.jpg");

  • 设置所有图片输入框(input type="image")的图片路径

  • 将 src 属性设置为 "images/fish1.jpg"

第5行:‌ $(":file").hide();

  • 隐藏所有的文件上传域(input type="file")

  • .hide() 方法设置 display: none

第6行:‌ $(":password").val("123");

  • 设置所有密码输入框的值为 "123"

  • 使用 .val() 方法而不是 .attr()

第7行:‌ $(":text").val("文本框");

  • 设置所有文本输入框的值为 "文本框"

第8行:‌ $(":button").attr("disabled","disabled");

  • 禁用所有的按钮(input type="button")

  • 设置 disabled 属性使其不可用

第9行:‌ $(":reset").val("重置按钮");

  • 设置重置按钮的显示文本为 "重置按钮"

第10行:‌ $(":submit").val("提交按钮");

  • 设置提交按钮的显示文本为 "提交按钮"

第11行:‌ $("#testDiv").append($("input:hidden:eq(1)").val());

  • 在 ID 为 testDiv 的元素中追加内容

  • $("input:hidden:eq(1)") 选择第二个隐藏域(索引从0开始)

  • 获取该隐藏域的值并添加到 testDiv 中

第12行:‌ });

  • 结束文档就绪函数

这段代码主要演示了 jQuery 选择器和属性操作的基本用法,用于初始化表单控件的状态。


.attr是干啥的?这是个缩略词吧?

从词源角度讲解一下在这里他是什么意思


在这段代码中,.attr() 是 jQuery 中用于操作 HTML 元素属性的方法。

该方法的核心功能包括获取属性值、设置属性值和移除属性值。

从词源角度分析,attr 是英文单词 ‌attribute‌(属性)的缩写。

在 Web 开发中,attribute 指的是 HTML 元素标签中的那些特性,比如 idclasssrc 等。

JavaScript 原生提供了 getAttribute() 和 setAttribute() 方法来处理这些属性,而 jQuery 的 .attr() 方法将这些功能整合到了一个统一的方法中。

具体到代码中的使用场景:

  • $(":checkbox").attr("checked","checked") 为复选框设置 checked 属性,使其被选中

  • $(":image").attr("src","images/fish1.jpg") 修改图片元素的 src 属性值

  • $(":button").attr("disabled","disabled") 为按钮添加 disabled 属性,使其不可用

.attr() 方法提供了多种调用方式:获取属性值、设置单个属性值、通过函数计算属性值,以及批量设置多个属性值

jQuery 的 .attr() 方法有多少种?























jQuery 的 .attr() 方法主要有四种使用形式,用于获取或设置 HTML 元素的属性值。

获取单个属性值

通过传入属性名,可以获取匹配元素集合中‌第一个元素‌的对应属性值。

如果元素没有该属性,则返回 undefined

例如 $('img').attr('src') 会返回第一张图片的 src 属性值。

设置单个属性值

传入属性名和属性值,可以为匹配的‌所有元素‌设置或修改一个属性。

如果元素原本没有该属性,此操作会为其新建该属性。

例如 $('img').attr('src', 'images/fish1.jpg')

通过函数设置属性值

传入属性名和一个函数,jQuery 会为每个匹配元素执行该函数,并使用函数的返回值作为该元素的新属性值。

这个函数接收两个参数:当前元素在集合中的索引 (index) 和该元素该属性的原有值 (oldPropertyValue) 。

这种方式允许根据元素的不同位置或原有值来动态设置属性。

设置多个属性值

通过传入一个对象(该对象以“属性名-值”对的形式构成),可以一次性为所有匹配元素设置多个属性。

例如 $('img').attr({ src: '../picture/02.jpg', aaa: '新设置属性a' }) 会同时设置 src 和 aaa 属性。

此外,与 .attr() 配合使用的还有 .removeAttr() 方法,用于从匹配元素集合中的每个元素‌移除一个属性‌。

语法为 $(selector).removeAttr(attribute),例如 $('div').removeAttr('id')

需要注意的是,对于 checkedselecteddisabled 这类布尔类型的属性,

虽然使用 .attr() 也能进行操作,但 jQuery 官方建议使用 .prop() 方法来处理它们。


能否给出更多使用.attr()方法的示例?





















jQuery 的 .attr() 方法提供了多种灵活的使用方式,主要涵盖属性值的获取、设置以及批量操作等场景。

获取属性值

通过传入属性名称,可以获取匹配元素集合中第一个元素的对应属性值。

例如:

  • 读取 data-* 自定义属性:let itemId = $('#myElement').attr('data-id');

  • 获取标准属性如 hrefsrclet linkUrl = $('#myLink').attr('href');

设置单个属性值

传入属性名和属性值,可以为所有匹配元素设置属性。

例如:

  • 修改图片路径:$('#myImage').attr('src', 'new_image.jpg');

  • 控制表单元素状态:$('#myButton').attr('disabled', 'disabled');

通过函数设置属性值

此方法允许为每个匹配元素提供一个函数,函数的返回值将作为该元素的新属性值。

函数接收当前元素的索引和其该属性的原有值作为参数,

便于实现动态属性设置。

设置多个属性值

通过传入一个包含"属性名-值"对的对象,可以一次性为所有匹配元素设置多个属性。

例如:$('#myElement').attr({'data-id': '123', 'data-name': 'example'});

移除属性

配合使用的 .removeAttr() 方法可以删除指定的元素属性。

例如:$("img").removeAttr("src");

在实际应用中,.attr() 方法常用于操作 data-* 属性、标准 HTML 属性以及 SVG 元素属性等。

然而,对于 checkedselecteddisabled 等布尔属性,虽然可以使用 .attr() 进行操作,

但 jQuery 官方更推荐使用 .prop() 方法来处理它们,因为 .prop() 会返回统一的布尔值(true/false),

而 .attr() 在不同状态下可能返回 "checked" 或 undefined,这可能导致行为不一致

标签: