jQuery属性选择器和操作是jQuery库中用于选择和操作HTML元素属性的功能。它们允许开发者通过元素的属性值来选择元素,或者获取、设置、修改元素的属性。
[attribute]
:选择具有指定属性的元素[attribute=value]
:选择属性值等于指定值的元素[attribute!=value]
:选择属性值不等于指定值的元素[attribute^=value]
:选择属性值以指定值开头的元素[attribute$=value]
:选择属性值以指定值结尾的元素[attribute*=value]
:选择属性值包含指定值的元素[attribute~=value]
:选择属性值包含指定单词的元素(以空格分隔)[attribute|=value]
:选择属性值等于指定值或以该值开头后跟连字符的元素:checked
:选择被选中的复选框或单选按钮:disabled
:选择被禁用的元素:enabled
:选择被启用的元素:selected
:选择被选中的下拉选项.attr()
:获取或设置属性值.removeAttr()
:移除属性.prop()
:获取或设置属性(特别适用于布尔属性如checked, disabled等).addClass()
:添加类.removeClass()
:移除类.toggleClass()
:切换类.hasClass()
:检查是否包含类.val()
:获取或设置表单元素的值.data()
:获取或设置数据属性// 选择所有有title属性的元素
$('[title]').css('color', 'red');
// 选择href属性以"https"开头的链接
$('a[href^="https"]').addClass('secure-link');
// 选择src属性包含"logo"的图片
$('img[src*="logo"]').addClass('logo-image');
// 获取和设置属性
var oldSrc = $('img#main').attr('src');
$('img#main').attr('src', 'new-image.jpg');
// 添加和移除类
$('div.content').addClass('highlight');
$('div.content').removeClass('hidden');
// 处理表单值
var username = $('#username').val();
$('#username').val('newUser');
// 数据属性操作
$('#user').data('userId', 12345);
var userId = $('#user').data('userId');
.attr()
vs .prop()
问题:何时使用.attr()
,何时使用.prop()
?
原因:
.attr()
操作的是HTML属性.prop()
操作的是DOM属性解决方案:
id
, class
, href
等)使用.attr()
checked
, disabled
, selected
等)使用.prop()
问题:通过AJAX或JavaScript动态添加的元素无法被属性选择器选中
原因:选择器只在初始DOM加载时执行一次
解决方案:
// 事件委托示例
$(document).on('click', '[data-action="delete"]', function() {
// 处理点击事件
});
问题:复杂属性选择器导致性能下降
原因:jQuery需要遍历DOM树匹配选择器
解决方案:
// 不好的做法
$('[data-user]').doSomething();
// 更好的做法
$('div.user-list [data-user]').doSomething();
jQuery属性选择器和操作虽然在现代前端开发中逐渐被原生JavaScript和现代框架取代,但在维护旧项目或需要快速开发时仍然非常有用。
没有搜到相关的文章