我需要检查 myDiv1
是否被禁用。如果是这样,我需要隐藏 myDiv2
,否则我需要显示 myDiv2
。
这是我目前所拥有的:
$(document).ready(function () {
var isDisabled = $('#myDiv1').is('[disabled=disabled]')
alert(isDisabled); //this always returns false
if(isDisabled)
$("#myDiv2").hide();
else
$("#myDiv2").show()
});
但 isDisabled
始终返回 false
,即使 myDiv1
已启用。我在这里缺少什么?
最佳答案
这么多答案,但没有一个解决实际问题:A div
element不允许 disabled
类型的属性。仅在 div
上 global attributes是允许的,而 disabled
在 form elements 上是允许的.
您可以通过测试此 HTML 轻松验证它:
<div id="a" disabled></div>
<input id="b" disabled>
针对这个 JavaScript:
var e = $('#a');
alert(e.is(':disabled'));
var e = $('#b');
alert(e.is(':disabled'));
这将返回 false
和 true
。
那有什么解决办法呢?
如果您想要一个实际名为 disabled
的属性,请使用 data-*
属性:
<div id="c" data-disabled="true"></div>
并使用这个 JavaScript 检查它:
var e = $('#c');
alert(e.data('disabled'));
或:
var e = $('#c');
alert('true' === e.attr('data-disabled'));
取决于您将如何处理附加的 data-*
-attributes。在这里您可以阅读更多关于 jQuery 的 .data()
这是在第一个例子中使用的。
演示:
关于javascript - 检查一个 div 是否被禁用 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41735850/