我一直想知道如果我试图通过 id 选择器查找 DOM 结构中不存在的元素,为什么 jQuery 返回 true。
像这样:
<div id="one">one</div>
<script>
console.log( !!$('#one') ) // prints true
console.log( !!$('#two') ) // is also true! (empty jQuery object)
console.log( !!document.getElementById('two') ) // prints false
</script>
我知道!!$('#two').length如果对象为空,我可以使用因为 length === 0 ,但对我来说,如果找到,选择器将返回元素似乎合乎逻辑,否则null(就像本机document.getElementById一样)。
F.ex,这个逻辑不能在 jQuery 中完成:
var div = $('#two') || $('<div id="two"></div>');
如果 ID 选择器在未找到时返回 null 会不会更合乎逻辑?
任何人?