我正在做以下事情:
if ($('#selectYears option[value="' + $(this).val() + '"]') != null || $('#selectYears option[value="' + $(this).val() + '"]') != [] ) {
console.log("inside if")
$('#selectYears option[value="' + $(this).val() + '"]').remove().appendTo($('#selectYears'))
} else {
console.log("inside else")
$('#selectedYears option[value="' + $(this).val() + '"]').remove().appendTo($('#selectYears'))
}
})
如果我在Chrome控制台中执行$('#selectYears option[value="my value"]')
,我会收到[]。但我在里面打印出来(因此我的检查失败了)。在这种情况下我需要进入其他方面。我哪里错了?
答案 0 :(得分:4)
jQuery选择器永远不会返回null
或数组,它返回一个jQuery对象。它看起来像是控制台中的一个数组,因为它具有使其类似于数组的属性#34;但它实际上并不是一个数组,并且不会比较等于[]
。有关此内容的更多信息,请参阅
What makes a jQuery object show up as an array in Chrome's Developer Tools?
如果您想知道是否匹配了任何内容,请使用.length
:
if ($('#selectYears option[value="' + $(this).val() + '"]').length != 0) {