Я не знаю, почему id моего клонированного элемента не изменяется. вот код, над которым я работаю.Изменение значения id клонированного элемента html
c.children('#response1').attr('id','response'+ (++inputs));
Я не знаю, почему id моего клонированного элемента не изменяется. вот код, над которым я работаю.Изменение значения id клонированного элемента html
c.children('#response1').attr('id','response'+ (++inputs));
Элемент ввода, который вы пытаетесь выбрать, НЕ является прямым потомком тега строки. Функция children()
выбирает только прямых детей. Вы можете использовать функцию find()
, чтобы получить непрямого потомка.
Вы можете посмотреть на этой обновленной скрипку, которая покажет вам идентификатор при нажатии на кнопку ввода текстового поля:
Кстати, у вас есть другая ошибка в коде. Если вы добавите 3 строки (или больше), а затем удалите строку, которая не является последней строкой, а затем добавьте еще одну строку, вы получите дубликаты идентификаторов. Причина в том, что вы уменьшаете счетчик inputs
при удалении строки, даже если она не является последней строкой. Например:
Добавить две строки.
response1
response2
response3
Теперь удалите второй ряд.
response1
response3
Добавить еще один ряд
response1
response3
response3 (this is the new one. duplicate id)
Решение состоит в том, чтобы либо не уменьшаем inputs
(если это не последняя строка, но это необязательно). Если вам определенно нужно иметь последовательно пронумерованные элементы, вам придется просто пересчитывать их каждый раз, когда ввод удаляется из любой позиции, кроме конца.
Вместо детей(), вам нужно использовать находку(). Дети работают только для прямых детей, а не для детей.