Javascript jQuery:迭代元素并复制属性';数据属性的值?

Javascript jQuery:迭代元素并复制属性';数据属性的值?,javascript,jquery,Javascript,Jquery,我需要在显示对话框时使用aria hidden=“true”对屏幕阅读器隐藏元素。当对话框取消显示时,我必须再次删除aria hidden 如果存在已设置了aria hidden值的元素,我希望将其原始状态缓存在数据属性中,以便在取消显示对话框时将其重新设置为原始值 $('body > :not(#dialog)').each -> $el = $(@) $el.data('dialog-aria-hidden', $el.attr('aria-hidden')) # Sto

我需要在显示对话框时使用
aria hidden=“true”
对屏幕阅读器隐藏元素。当对话框取消显示时,我必须再次删除
aria hidden

如果存在已设置了
aria hidden
值的元素,我希望将其原始状态缓存在数据属性中,以便在取消显示对话框时将其重新设置为原始值

$('body > :not(#dialog)').each ->
  $el = $(@)
  $el.data('dialog-aria-hidden', $el.attr('aria-hidden')) # Store original value
  $el.attr('aria-hidden', true) # Set new value
我不想创建一个临时的
$el
元素。有没有更快的方法?也许是这样的

$('body > :not(#dialog)').data('dialog-aria-hidden', attr('aria-hidden')).attr('aria-hidden', true)

若您的代码运行良好,并且这个问题的目标是寻求改进,那个么您应该尝试一下instead@Satpal你为什么删除你的答案?我觉得不错。