我正在尝试重用一个函数,而我正在定义一个在尝试将其放入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/
如果你能对此有所了解,那就太好了!在此先感谢!
答案 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”。