【发布时间】:2021-01-17 22:49:59
【问题描述】:
我有一个元素,我想知道它是否在我的 javascript 中被禁用。如何获取元素的 disabled 属性的值?
【问题讨论】:
-
简单 -
element.getAttribute('disabled');
标签: javascript html
我有一个元素,我想知道它是否在我的 javascript 中被禁用。如何获取元素的 disabled 属性的值?
【问题讨论】:
element.getAttribute('disabled');
标签: javascript html
当我尝试搜索这个特定的措辞时,我发现了很多关于 stackoverflow 的相关问题,但不是这个。我从其他帖子和我已经知道的东西中弄清楚了,但是由于我没有在 stackoverflow 中找到明确提出的这个特定问题,我希望这可以帮助没有经验的人找到答案。
您应该寻找 HTML 元素的 disabled property 的值,而不是 attribute。
disabled既是属性也是属性,但只有属性才是真正有用的。你可以像这样在你的 js 中得到它:
let myElement = document.document.getElementsByTagName('input')[0];
let is_disabled = myElement.disabled;
// true or false
MDN page on disabled 无济于事。它只谈论disabled 作为一个属性。也许 MDN 中还有一个我还没有找到的页面可以更好地解释它。
属性与 HTML 有关。在下面的代码中,class 是一个属性:
<input class="the-best"/>
它在 HTML 中有一个值。您可以通过.getAttribute() 获得属性的值:
let classNames = myElement.getAttribute('class');
// "the-best"
属性与javascript有关。在 javascript 中,当你得到一个元素时,你会得到一个带有一堆属性和方法的对象。例如,您可以像这样获取元素的inner height:
let inner_height = myElement.clientHeight;
// Some number
在 HTML 中,disabled 如下所示:
<input disabled/>
您可以在 HTML 中看到disabled,但它没有值。你可以给它一个值,比如myElement.setAttribute('disabled', 'false')。您将获得 <input disabled="false"> 并且该元素将被禁用。如果disabled 在 HTML 中,则元素被禁用。如果它不在 HTML 中,则该元素不会被禁用。 .getAttribute() 会这样工作:
// <input disabled/>
let is_disabled = myElement.getAttribute('disabled');
// "" - an empty string
// <input/>
let is_disabled = myElement.getAttribute('disabled');
// null
如果你愿意,你可能仍然可以使用.getAttribute(),因为你可以检查string 或null,但是人们有时会用他们的 HTML 和这些属性的“值”做一些奇怪的事情(比如我在上面描述过)。
【讨论】: