我有以下代码段:
var max = prompt("");
var selector = '#list > listitem > label[value=max]';
var node = document.querySelector(selector);
node.click();
我想根据selector
的输入值设置max
字符串。
答案 0 :(得分:1)
如果您的意思是要在选择器中使用max
变量的值,请使用字符串连接(并在其周围加上引号):
var max = prompt("");
var selector = '#list > listitem > label[value="' + max + '"]';
var node = document.querySelector(selector);
那里有两件不同的事情:
我们正在使用字符串连接将max
的值放入字符串中。
完全与此无关,我们还将该值放在选择器的引号中,以便空格或其他字符不会炸毁选择器。 [value=foo]
是有效的属性匹配选择器,但[value=foo bar]
不是。 [value="foo bar"]
是。虽然将值放在引号中并不会解决所有问题(特别是,如果用户键入"
,您就会遇到麻烦),但它至少会处理空格。
或者,如果您使用的是ES2015(又名“ES6”),则可以使用模板字符串:
// ES2015 only!
var max = prompt("");
var selector = `#list > listitem > label[value="${max}"]`;
var node = document.querySelector(selector);
但请注意,value
为not a valid attribute for label
elements。表单字段包含value
,而不是标签。