我正在尝试使用以下代码查找具有指定名称的元素:
var x = document.querySelectorAll("input[name=" + data['res'] + "]");
问题在于,当
data['res']
包含包含空格的字符串,将显示以下错误:
SyntaxError:指定了无效或非法的字符串
答案 0 :(得分:2)
尝试:
document.querySelectorAll("input[name=\"" + data['res'] + "\"]");
答案 1 :(得分:2)
您需要先引用该值:
var x = document.querySelectorAll(`input[name="` + data['res'] + `"]`);
答案 2 :(得分:2)
因为您没有引用该值
var x = document.querySelectorAll("input[name='" + data['res'] + "']");
如果您可以使用字符串文字,那么使用它是一个很好的用例。
var x = document.querySelectorAll(`input[name="${data['res']}"]`);
答案 3 :(得分:2)
尝试将值放在单引号中。如果您要这样做:
document.querySelectorAll("input[name=" + data['res'] + "]");
// let's say data['res'] = 'name with a space'
// value would be "input[name=name with a space]" -- invalid
由于缺少引号,您将获得无效的值。
您可以在“ name =“之后和“]”之前加上单引号:
document.querySelectorAll("input[name='" + data['res'] + "']");
// value would be "input[name='name with a space']" -- valid