MDN的Element.hasAttribute()代码示例令人难以理解,我希望其代码片段清晰明了

时间:2019-01-21 18:08:42

标签: javascript html

为了清楚了解.hasAttribute的含义,我在MDN上进行了查询。他们作为用例提供的以下代码片段使我感到困惑,因为其属性“ bar”不是html属性,而是一个值。它是风俗的吗?我从未听说过要创建自己的自定义属性。有人可以解释吗?

var result = element.hasAttribute(name);

var foo = document.getElementById("foo"); 
   if (foo.hasAttribute("bar")) { 
    // do something
}

2 个答案:

答案 0 :(得分:0)

您经常会在代码段中看到“ foo”和“ bar”用作占位符。这只是一个程序员的笑话。

单词“ foo”和“ bar”来自“ foobar”或更确切地说是“ fubar”,该术语用于描述已损坏的东西。它代表“超越所有认知的F * d”

基本上在示例中,将“ foo”替换为html元素的ID,并将“ bar”替换为要在该元素上检查的任何html属性。

答案 1 :(得分:0)

下面是一个带有相关HTML的示例,以显示属性bar在元素上如何存在。

var foo = document.getElementById("foo");
if (foo.hasAttribute("bar")) {
    console.log('Element has attribute "bar". Value is:', foo.getAttribute("bar"));
}
<div id="foo" bar="random string">Div Element</div>

  

这是习惯吗?我从未听说过要创建自己的自定义属性。

是的,那将是一个自定义属性。但是,自定义属性的标准是使用data attributes

<div id="foo" data-bar="">div</div>

但是有一些例外,因为Web组件可以定义的自定义属性不是data- attributes。但是Web组件可能不是您想要的。