indexOf中的javascript变量

时间:2016-09-16 15:47:52

标签: javascript

我正在尝试重用一个函数,而我正在定义一个在尝试将其放入indexOf()时破坏该函数的变量。我已经尝试了几个近似值,但我无法弄清楚为什么它不起作用。代码是这样的:

function toggleSelectAll(control, nadaValue) {
var allOptionIsSelected = (control.val() || []).indexOf('"' + nadaValue + '"') > -1;

在函数断开的情况下,toggleSelectAll被调用如下:

toggleSelectAll($(this), 1);

试图替换这个:

function toggleSelectAll(control) {
var allOptionIsSelected = (control.val() || []).indexOf("1") > -1;

您可以看到几个JSFiddle示例来更好地说明:

这有效:http://jsfiddle.net/victorRGS/o8cjtoqp/1/

这不是:http://jsfiddle.net/victorRGS/o8cjtoqp/2/

如果你能对此有所了解,那就太好了!在此先感谢!

2 个答案:

答案 0 :(得分:1)

# NOTE: Download the chromedriver driver # Then move exe file on C:\Python27\Scripts from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import time import sys driver = webdriver.Chrome() driver.implicitly_wait(10) URL_start = "http://www.google.us/trends/explore?" date = '&date=today%203-m' # Last 90 days location = "&geo=US" symbol = sys.argv[1] query = 'q='+symbol URL = URL_start+query+date+location driver.get(URL) table = driver.find_element_by_xpath('//div[@class="line-chart"]/table/tbody') print table.text 使用严格比较,可以从数组中找到参数。

您拥有的数据是字符串的类型。但是,您传递的数字为indexOf,因此nadaValue始终无法从数组中找到匹配项。

要解决此问题,您要么将字符串作为indexOf传递,要么在nadaValue中使用之前将其显式转换为字符串。一种方便的方法是创建一个临时字符串:

indexOf

这样,您可以保留数字类型,如果稍后在代码中需要它。

答案 1 :(得分:0)

您的代码存在问题。 indexOf()函数使用严格比较,即与将比较数据和数据类型的'==='进行比较。因此,在比较nadaValue时,它(indexOf())检查文字1而不是字符串1,即“1”。