我在每个<option>
上使用以下函数来确定它是否被选中:
var _matches = function(el, selector) {
var fn = el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector;
return fn.call(el, selector);
};
它在NodeJS的jsdom
中工作正常,它适用于浏览器中的选择器:checked
(在复选框输入上),但选择器{{1> 这是奇怪的。
我收到错误(在Chrome中):
Uncaught SyntaxError:无法在'Element'上执行'matches':':selected'不是有效的选择器。
答案 0 :(得分:5)
错误消息似乎是正确的,querySelector('option:selected')
不是有效的选择器,甚至:active
:checked
:default
:dir()
:disabled
:empty
:enabled
:first
:first-child
:first-of-type
:fullscreen
:focus
:hover
:indeterminate
:in-range
:invalid
:lang()
:last-child
:last-of-type
:left
:link
:not()
:nth-child()
:nth-last-child()
:nth-last-of-type()
:nth-of-type()
:only-child
:only-of-type
:optional
:out-of-range
:read-only
:read-write
:required
:right
:root
:scope
:target
:valid
:visited
也失败
:checked
要使用的正确psuedo类是:checked
,MDN says
<input type="radio">
CSS伪类选择器代表任何广播(<input type="checkbox">
),复选框(<option>
)或选项(<select>
在I, J = np.triu_indices(Y.shape[0], 0) rowDiffs = (Y[I, :] - Y[J, :])
)元素中检查或切换为开启状态。