2016-06-06 3 views
-2

У меня есть следующий фрагмент кода:Укажите строку на основе значения prompt()?

var max = prompt(""); 
var selector = '#list > listitem > label[value=max]'; 
var node = document.querySelector(selector); 
node.click(); 

Я хочу, чтобы установить в selector строку, основанную на входном значении max.

+2

Итак? В чем вопрос ? Вы имеете в виду 'node.maxLength = max' – Rayon

+1

Что означает« установить текущее значение »? Кроме того, ['значение' не является допустимым атрибутом для элементов метки) (https://www.w3.org/TR/html5/forms.html#the-label-element), поэтому селектор не делает много смысла. –

+0

@jhonde: Нет, это неверно, см. Ссылку на приведенную выше спецификацию. Возможно, у вас есть это, но это не то же самое, что оно действительно. –

ответ

1

Если вы имеете в виду вы хотите использовать значение переменной max в селекторе, использование конкатенации строк (и поставить кавычки вокруг него):

var max = prompt(""); 
var selector = '#list > listitem > label[value="' + max + '"]'; 
var node = document.querySelector(selector); 

Две разные вещи там происходит:

  1. Мы используем конкатенацию строк, чтобы поставить значение из max в строку.

  2. Полностью не связанный с этим, мы также помещаем это значение в кавычки в селекторе, чтобы пробелы или некоторые другие символы не взорвали селектор. [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, а не ярлыки.

+0

@jhonde: Извините, я понятия не имею, что вы пытаетесь сделать там. –

+0

@jhonde: Что означает «установить выходное значение»? –

+0

Удивительно, но я не смог найти дубликат для этого вопроса ... –

Смежные вопросы