【问题标题】:Toggle an element's attribute with jQuery?用 jQuery 切换元素的属性?
【发布时间】:2021-10-07 09:21:12
【问题描述】:
使用 jQuery 构建树形菜单,我希望它可以访问,所以我使用 aria 属性。我想要做的是在单击/输入时将“aria-expanded”属性从 true 切换为 false。我试过这个,但显然不正确:
$(this).closest('ul').find('> li.tree-parent').toggleAttr( 'aria-expanded', 'true false' );
【问题讨论】:
标签:
jquery
attributes
toggle
wai-aria
【解决方案1】:
您可以使用.attr()手动编写切换逻辑
$(this).closest('ul').find('> li.tree-parent').attr('aria-expanded', function (i, attr) {
return attr == 'true' ? 'false' : 'true'
});
【解决方案2】:
这个元素会根据点击改变类。提到的 aria-expanded 值是点击后
$("#navbar-btn-icon").click(function(e) {
var menuItem = $(this);
if (menuItem.attr("aria-expanded") === "true") {
$("span.navbar-toggler-icon").addClass('clicked');
}
else if (menuItem.attr("aria-expanded") === "false") {
$("span.navbar-toggler-icon").removeClass('clicked');
}
});