Мне нужно изменить идентификатор элемента с помощью 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.)
Изменить
Я не могу использовать классы в этом случае, я должен использовать идентификаторы.
javascript
jquery
yoavf
источник
источник
foo = 1
), члену объекта (foo.bar = 2
илиfoo['bar'] = 2
) или массиву индекс (foo[0] = 3
), но присваивать выражению, как результат оператора ((x + b) = 5
) или результат вызова функции (foo() = 1
,foo(x).bar(y) = 7
) не имеет никакого смысла, так что это определенно не будет работать в jQuery или любой другой библиотеке JavaScript.Ответы:
Ваш синтаксис неверен, вы должны передать значение в качестве второго параметра:
источник
.prop( ... )
вместо.attr( ... )
?id
все еще должен быть установлен с помощьюattr(...)
Предпочтительным вариантом
.attr
является использование.prop
следующим образом:.attr
извлекает атрибут элемента, тогда как.prop
извлекает свойство, на которое ссылается атрибут (то есть то, что вы на самом деле намереваетесь изменить)источник
.prop()
метод предоставляет способ явного извлечения значений свойств при.attr()
извлечении атрибутов».Что вы хотите сделать, это:
Это установит идентификатор на новый идентификатор
источник
Я сделал нечто подобное с этой конструкцией
источник
Я не уверен, какова ваша цель, но может быть лучше вместо этого использовать addClass? Я имею в виду, что идентификатор объекта, по моему мнению, должен быть статическим и специфичным для этого объекта. Если вы просто пытаетесь изменить отображение на странице или что-то в этом роде, я бы поместил эти детали в класс, а затем добавил его в объект, а не пытался изменить его идентификатор. Опять же, я говорю это, не понимая вашей подчеркивающей цели.
источник
источник
Это может сделать для всех целей. Просто добавьте перед закрывающим тегом свое тело и не добавляйте Jquery.min.js
источник
Ответ Эрана хорош, но я бы добавил к этому. Вам нужно следить за любой интерактивностью, которая не встроена в объект (то есть, если событие onclick вызывает функцию, она все равно будет), но если к этому идентификатору будет добавлена обработка событий javascript или jQuery, она будет в основном заброшена. :
Если идентификатор теперь изменился на # myID123, функция, прикрепленная выше, больше не будет работать правильно из моего опыта.
источник