Greasemonkey:为什么这个if语句总是返回true?

时间:2015-11-14 05:20:52

标签: javascript jquery if-statement greasemonkey

这让我感到困惑......我在ajax页面上使用waitforkeyelements ...我有一个if语句,如果有一个值为“Accept Offer”的按钮,它只会弹出一个警告。不幸的是,当只有2个按钮具有“继续探索”和“投资”的值时,它会弹出警报。我有一种感觉它与真/假的东西有关,但我无法弄清楚为什么getElementById应该像这样使用,但我的选择器没有。如果我添加===something,这可行,但我想知道为什么它不能像这样工作。

因此,当有2个按钮的值为“继续探索”和“投资”时,我会收到一条提示“是的!”然后是一个警告“投资”。当没有值为“Accept Offer”的按钮时,它不应该运行“else”吗?

function countit () {

  if ($( '.adv-action[value*="Accept Offer"]')){

    alert("Yes!")
    alert($('.adv-action').val())

   }

  else{
    alert("no")
    alert($('.adv-action').val())
   }
}

waitForKeyElements ('[value*="Continue Exploring"]', countit);

1 个答案:

答案 0 :(得分:4)

你应该做

if ($( '.adv-action[value*="Accept Offer"]').length!=0){

    alert("Yes!")
    alert($('.adv-action').val())

   }

else{
    alert("no")
    alert($('.adv-action').val())
}

$( '.adv-action[value*="Accept Offer"]')返回一个数组,数组总是等于true,所以通过将其长度等于0来检查它是否实际包含任何元素。