Почему оператор приращения не работает с Element.id но делает с Element.name в javascript

#javascript #html

Вопрос:

Я динамически создаю HTML-элементы, идентификаторы и имена для HTML-формы с помощью JavaScript. Оператор не работает при попытке присвоить увеличенное значение идентификатору с помощью Element.id. Это работает при присвоении имени увеличенного значения с использованием Element.name хотя. В чем причина этой разницы?

 locationQuantity = 0;
newInputField.id = "location"   locationQuantity  ; 
newInputField.name = "location"   locationQuantity;
 

Возьмите этот фрагмент кода в качестве примера. Когда я проверяю динамически созданный элемент в браузере, у элемента будет идентификатор=»местоположение 0″ и имя=»местоположение 1″. Оператор явно работал, так как имя увеличивается, но идентификатор отображается так, как будто оператор не работал. Вот рабочий пример такого поведения.

Я понимаю, как это обойти, мне просто любопытно, почему это происходит.

Комментарии:

1. Значение возвращается до того, как произойдет. Попробуйте `местоположение» ( Количество мест)

Ответ №1:

Этот:

 locationQuantity = 0;
newInputField.id = "location"   locationQuantity  ; 
 

равно этому:

 locationQuantity = 0;
newInputField.id = "location"   locationQuantity;
locationQuantity = locationQuantity   1; 
 

Так:

 locationQuantity = 0;
newInputField.id = "location"   locationQuantity; //locationQuantity is 0
locationQuantity = locationQuantity   1; //locationQuantity  is now 1
newInputField.name = "location"   locationQuantity; //"location"   1