У вас может быть только один id
на элемент см. this answer for more details, поэтому вам нужно удалить предыдущий идентификатор, но это странно.
Все это рассматривается, вот как вы могли бы добиться этого, но я не думаю, что это на самом деле то, что вы хотите
$("#listitem1").removeAttr("id").attr("id", "newID")
В приведенном выше коде я СЦЕПЛЕНИЕ методы с помощью первого выбора #listitem1
, затем удалив атрибут id и, наконец, применив новый идентификатор.
Кроме того, в вашем примере var i = $("middle_item").attr("id");
возвращает неопределенное значение, так как идентификатор не применяется, но если вы сделали вы сделали две ошибки: первая Вы писали $("middle_item")
, когда он должен был $("#middle_item")
и второй, потому что вы не первый удалить предыдущую id
.
jQuery Docs
По JQuery 1.6,.Метод attr() возвращает undefined для атрибутов, которые не были установлены. Чтобы получить и изменить свойства DOM, такие как проверенные, выбранные или отключенные состояния элементов формы, используйте метод .prop().
Нет особой причины, чтобы изменить класс на идентификатор только потому, что это единственный элемент с этим классом. Элемент может иметь только один идентификатор, но он может иметь много классов. – Pointy
@Pointy i только хочу изменить класс на id, потому что я узнал, что только элемент может иметь этот класс, поэтому класс должен быть id –
. Вы должны не узнавать это понятие, потому что это действительно бессмысленно. – Pointy