document.querySelector("#" + selectedEngine.id).click();当selectedEngine.id没有空格的时候上面语句是正常执行的,但是selectedEngine.id包含空格的时候不能执行了,有什么解决办法? 先谢谢!!!
document.querySelector("#" + selectedEngine.id).click();当selectedEngine.id没有空格的时候上面语句是正常执行的,但是selectedEngine.id包含空格的时候不能执行了,有什么解决办法? 先谢谢!!!
document.querySelector("#" + String( selectedEngine.id).replace(/\s/g, '\\$&')).click();
.replace(/\s/g, '\\$&') 这段代码能否解释一下?
根据W3C的介绍(http://www.w3school.com.cn/js/jsref_replace.asp)stringObject.replace(regexp/substr,replacement)
说明字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。replacement 可以是字符串,也可以是函数。如果它是字符串,那么每个匹配都将由字符串替换。但是 replacement 中的 $ 字符具有特定的含义。$1、$2、...、$99 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。
$& 与 regexp 相匹配的子串。
$` 位于匹配子串左侧的文本。
$' 位于匹配子串右侧的文本。
$$ 直接量符号。\s 匹配一个空白字符,包括\n,\r,\f,\t,\v等 有了上述解释,估计楼主你大概知道这个replace(/\s/g, '\\$&')的含义了
就是在(给定的字符串)含有一个空格的地方替换成\
希望这些资料对你有所帮助