Javascript 在不再次查询DOM的情况下获取DOM元素属性,如果不';不存在

Javascript 在不再次查询DOM的情况下获取DOM元素属性,如果不';不存在,javascript,dom,Javascript,Dom,我使用以下方法获取DOM元素: a = document.querySelector('[data-time]'); 我想检查元素是否有其他特定属性 如果他们有,我想得到他们的值或设置一个默认值 我可以使用: c = a.querySelector('[data-time-pre]) 但是我为每个属性调用DOM 所以我想用: placeholder = a.attributes.placeholder 因此,在这种情况下,如果属性不存在,分配默认值的最简单方法是什么 我找到了hasOwnP

我使用以下方法获取DOM元素:

a = document.querySelector('[data-time]');
我想检查元素是否有其他特定属性

如果他们有,我想得到他们的值或设置一个默认值

我可以使用:

c = a.querySelector('[data-time-pre])
但是我为每个属性调用DOM

所以我想用:

placeholder = a.attributes.placeholder
因此,在这种情况下,如果属性不存在,分配默认值的最简单方法是什么

我找到了
hasOwnProperty('property1')
,但我不确定我要查找的属性是否继承,而且如果我有许多属性,我需要使用多个
ifs

也许有这样的情况:

placeholder = (a.attributes.placeholder, 'default')

以下是您可以做的:

  • 将属性名称和默认值构造为k/v对
  • 在属性/默认对的上方
  • 如果键不作为属性存在,请使用其默认值设置它
  • 返回现有属性或集合属性
const el=document.querySelector(“#el”)
常量属性={
//关键字:默认值
['data-foo']:'foo',
['data-bar']:'bar',
['data-baz']:'baz'
}
const results=Object.keys(attrs.map)(key=>{
如果(!el.hasAttribute(键))
el.setAttribute(键,属性[key])
返回{attr:key,value:el.getAttribute(key)}
})
console.log(结果)

以下是您可以做的:

  • 将属性名称和默认值构造为k/v对
  • 在属性/默认对的上方
  • 如果键不作为属性存在,请使用其默认值设置它
  • 返回现有属性或集合属性
const el=document.querySelector(“#el”)
常量属性={
//关键字:默认值
['data-foo']:'foo',
['data-bar']:'bar',
['data-baz']:'baz'
}
const results=Object.keys(attrs.map)(key=>{
如果(!el.hasAttribute(键))
el.setAttribute(键,属性[key])
返回{attr:key,value:el.getAttribute(key)}
})
console.log(结果)
你说的“存在”是什么意思?是否
未定义
?如果是这样的话,
placeholder=a.attributes.placeholder==undefined有什么问题?“默认”:a.attributes.placeholder
?@Adelin“exist”,在html元素上设置了许多属性;根据上下文,它们的数量不同。根据它们的值,我会做出一些决定(如果)。如果找不到属性,我想设置一个默认值。“存在”是什么意思?是否
未定义
?如果是这样的话,
placeholder=a.attributes.placeholder==undefined有什么问题?“默认”:a.attributes.placeholder
?@Adelin“exist”,在html元素上设置了许多属性;根据上下文,它们的数量不同。根据它们的值,我会做出一些决定(如果)。如果找不到属性,我想设置默认值。