Изменение идентификатора элемента с помощью jQuery

Мне нужно изменить идентификатор элемента с помощью jQuery.

По-видимому, они не работают:

jQuery(this).prev("li").attr("id")="newid"
jQuery(this).prev("li")="newid"

Я узнал, что могу сделать это со следующим кодом:

jQuery(this).prev("li")show(function() {
    this.id="newid";
});

Но это не кажется мне правильным. Должен быть лучший способ, нет? Кроме того, в случае, если нет, какой другой метод я могу использовать вместо show/hide или других эффектов? Очевидно, я не хочу каждый раз показывать/скрывать или влиять на элемент, просто чтобы изменить его идентификатор.

(Да, я новичок в jQuery.)

Edit
Я не могу использовать классы в этом случае, я должен использовать идентификаторы.

Ответ 1

Ваш синтаксис неверен, вы должны передать это значение в качестве второго параметра:

jQuery(this).prev("li").attr("id","newId");

Ответ 2

Что вы хотите сделать:

jQuery(this).prev("li").attr("id", "newID");

Это установит идентификатор нового идентификатора

Ответ 3

A ПРЕДПОЧТИТЕЛЬНЫЙ ВАРИАНТ над .attr должен использовать .prop так:

$(this).prev('li').prop('id', 'newId');

.attr извлекает атрибут элемента, тогда как .prop извлекает свойство, которое ссылается на атрибут (т.е. то, что вы намереваетесь изменить)

Ответ 4

Я сделал что-то подобное с этой конструкцией

$('li').each(function(){
  if(this.id){
    this.id = this.id+"something";
  }
});

Ответ 5

Я не уверен, какова ваша цель, но может быть лучше использовать addClass? Я имею в виду, что идентификатор объектов, на мой взгляд, должен быть статичным и специфичным для этого объекта. Если вы просто пытаетесь изменить его из показа на странице или что-то в этом роде, я бы поместил эти данные в класс, а затем добавлю его в объект, а затем попытаюсь изменить его ID. Опять же, я говорю это, не понимая вашей подчеркивающей цели.

Ответ 6

если вы хотите изменить старый идентификатор, тогда теперь покажем в примере

<label id="myOldId">Change id....</label>

и chage с помощью java- script

<script type="text/javascript" src="jQuery-1.7.2.js"></script> 

<script>
$(document).ready(function() {

    $('#myOldId').attr('id', 'newID');

    });
</script>

Ответ 7

$("#LeNomDeMaBaliseID").prop('id', 'LeNouveauNomDeMaBaliseID');

Ответ 8

Эран отвечает хорошо, но я бы добавил к этому. Вам нужно следить за любой интерактивностью, которая не является встроенной в объект (то есть, если событие onclick вызывает функцию, оно все равно будет), но если есть некоторая обработка событий javascript или jQuery, прикрепленная к этому ID, она будет в основном оставлена

$("#myId").on("click", function() {});

Если идентификатор теперь изменен на # myID123, функция, указанная выше, перестанет функционировать корректно из моего опыта.

Ответ 9

<script>
       $(document).ready(function () {
           $('select').attr("id", "newId"); //direct descendant of a
       });
</script>

Это может быть сделано для всех целей. Просто добавьте перед тегом закрытие тега и не добавляйте Jquery.min.js