<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 元素标签中的那些特性,比如 id、class、src 等。
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')。
需要注意的是,对于 checked、selected、disabled 这类布尔类型的属性,
虽然使用 .attr() 也能进行操作,但 jQuery 官方建议使用 .prop() 方法来处理它们。
能否给出更多使用.attr()方法的示例?
jQuery 的 .attr() 方法提供了多种灵活的使用方式,主要涵盖属性值的获取、设置以及批量操作等场景。
获取属性值
通过传入属性名称,可以获取匹配元素集合中第一个元素的对应属性值。
例如:
读取
data-*自定义属性:let itemId = $('#myElement').attr('data-id');获取标准属性如
href、src:let 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 元素属性等。
然而,对于 checked、selected、disabled 等布尔属性,虽然可以使用 .attr() 进行操作,
但 jQuery 官方更推荐使用 .prop() 方法来处理它们,因为 .prop() 会返回统一的布尔值(true/false),
而 .attr() 在不同状态下可能返回 "checked" 或 undefined,这可能导致行为不一致