【发布时间】:2012-11-03 20:15:25
【问题描述】:
为什么 jQuery 没有 :readonly 选择器?
输入有 :checked 和 :selected 和 :disabled 选择器。那么,为什么没有 :readonly 选择器呢?我的意思是,作为“编码糖”。
因为所有这些方括号都很难看——“.is('[readonly]')”。为什么没有“.is(':readonly')”?
:readonly 选择器不存在可能有什么原因?
【问题讨论】:
为什么 jQuery 没有 :readonly 选择器?
输入有 :checked 和 :selected 和 :disabled 选择器。那么,为什么没有 :readonly 选择器呢?我的意思是,作为“编码糖”。
因为所有这些方括号都很难看——“.is('[readonly]')”。为什么没有“.is(':readonly')”?
:readonly 选择器不存在可能有什么原因?
【问题讨论】:
此增强功能在以下位置被拒绝:http://bugs.jquery.com/ticket/2497
给出的理由:
解决方案见上文。添加新的伪代码不是一个好主意 因为他们在 Firefox / Safari / Chrome 中抛出控制台警告 到querySelectorAll的使用
亲眼看看:
document.querySelector(":readonly")
//Error: SYNTAX_ERR: DOM Exception 12
你可以使用:read-only,虽然我不确定是否支持:
在 chrome 中工作,但在 Firefox 中不工作。
【讨论】:
:read-only 伪类在Selectors 4 中,这仍然是一个早期的草案,因此强烈不推荐使用它。我不太确定它是否曾经出现在 Selectors 3 中。在最前沿的 WebKit 中得分一分,尽管我个人不会对此感到兴奋,直到 WebKit 解决了它与 CSS2.1 的众多问题,这一直是REC 一年多。
$(':not([readonly]')... 为我工作。
【讨论】: