作者:蓝色清晨-花 | 来源:互联网 | 2023-02-03 13:37
当使用元素时,两者:checked
和:selected
似乎提供了相等的结果
。使用一个相对于另一个有什么好处吗?如果:selected
与相同:checked
,那么将它完全包含在jQuery中的原因是什么?
例:
Select a value
Select a value
Option one
Option two
$('select').on('change', function(){
$('.p1').text(function() {
return $('option:selected').text();
});
$('.p2').text(function() {
return $('option:checked').text();
});
});
JS Bin演示
1> BoltClock..: 从文档的角度来看,除了只匹配元素外,似乎与之:selected
相同。HTMLOptionElement是DOM中唯一具有属性的元素类型(这是用来测试元素的选择性的元素),从而证实了这一点。换句话说,当您只对元素感兴趣时,两个选择器都是相同的-除了非标准选择器。:checked
option
selected
:selected
option
:selected
由于文档本身建议使用标准选择器以最大程度地提高性能(并且因为如果给出选择,您为什么不 使用标准选择器而不是 非标准选择器?),所以我认为没有理由:selected
在任何情况下使用。我想不出任何比这*:selected
更好的情况option:checked
(严重的是,什么时候您最后一次使用这种没有类型选择器的伪类?)
也许将它包含在jQuery中的原因可能是因为Selectors 3(:checked
出现在其中)在jQuery诞生之时尚未标准化,但自2000年以来:checked
一直存在于规范中,因此我并不完全相信这是真正的原因。