Javascript 可能的逻辑错误或比较器问题

Javascript 可能的逻辑错误或比较器问题,javascript,jquery,comparator,Javascript,Jquery,Comparator,我正在做以下工作: if ($('#selectYears option[value="' + $(this).val() + '"]') != null || $('#selectYears option[value="' + $(this).val() + '"]') != [] ) { console.log("inside if") $('#selectYears option[value="' + $(this).val() + '"]').remove().a

我正在做以下工作:

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”]')
,我会得到[]。但我正在打印内部if(因此我的支票未通过)。在这种情况下,我需要进入另一个领域。我错在哪里?

jQuery选择器从不返回
null
或数组,它返回jQuery对象。它在控制台中看起来像一个数组,因为它具有使其“类似数组”的属性,但它实际上不是一个数组,并且不会与
[]
进行比较。有关更多信息,请参阅

如果您想知道是否有匹配项,请使用
.length

if ($('#selectYears option[value="' + $(this).val() + '"]').length != 0) {

jQuery选择器从不返回
null
或数组,而是返回jQuery对象。它在控制台中看起来像一个数组,因为它具有使其“类似数组”的属性,但它实际上不是一个数组,并且不会与
[]
进行比较。有关更多信息,请参阅

如果您想知道是否有匹配项,请使用
.length

if ($('#selectYears option[value="' + $(this).val() + '"]').length != 0) {

jQuery选择器不能为null或空数组,因为它总是返回jQuery对象。如果您试图检查元素是否存在,请使用
length
,否则请进一步解释您试图执行的操作。jQuery选择器不能为null或空数组,因为它总是返回jQuery对象。如果您试图检查元素是否存在,请使用
长度
,否则请进一步解释您试图执行的操作。感谢您的解释和链接!感谢您的解释和链接!