Ответ 1
Ваш синтаксис неверен, вы должны передать это значение в качестве второго параметра:
jQuery(this).prev("li").attr("id","newId");
Мне нужно изменить идентификатор элемента с помощью 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
Я не могу использовать классы в этом случае, я должен использовать идентификаторы.
Ваш синтаксис неверен, вы должны передать это значение в качестве второго параметра:
jQuery(this).prev("li").attr("id","newId");
Что вы хотите сделать:
jQuery(this).prev("li").attr("id", "newID");
Это установит идентификатор нового идентификатора
A ПРЕДПОЧТИТЕЛЬНЫЙ ВАРИАНТ над .attr
должен использовать .prop
так:
$(this).prev('li').prop('id', 'newId');
.attr
извлекает атрибут элемента, тогда как .prop
извлекает свойство, которое ссылается на атрибут (т.е. то, что вы намереваетесь изменить)
Я сделал что-то подобное с этой конструкцией
$('li').each(function(){
if(this.id){
this.id = this.id+"something";
}
});
Я не уверен, какова ваша цель, но может быть лучше использовать addClass? Я имею в виду, что идентификатор объектов, на мой взгляд, должен быть статичным и специфичным для этого объекта. Если вы просто пытаетесь изменить его из показа на странице или что-то в этом роде, я бы поместил эти данные в класс, а затем добавлю его в объект, а затем попытаюсь изменить его ID. Опять же, я говорю это, не понимая вашей подчеркивающей цели.
если вы хотите изменить старый идентификатор, тогда теперь покажем в примере
<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>
$("#LeNomDeMaBaliseID").prop('id', 'LeNouveauNomDeMaBaliseID');
Эран отвечает хорошо, но я бы добавил к этому. Вам нужно следить за любой интерактивностью, которая не является встроенной в объект (то есть, если событие onclick вызывает функцию, оно все равно будет), но если есть некоторая обработка событий javascript или jQuery, прикрепленная к этому ID, она будет в основном оставлена
$("#myId").on("click", function() {});
Если идентификатор теперь изменен на # myID123, функция, указанная выше, перестанет функционировать корректно из моего опыта.
<script>
$(document).ready(function () {
$('select').attr("id", "newId"); //direct descendant of a
});
</script>
Это может быть сделано для всех целей. Просто добавьте перед тегом закрытие тега и не добавляйте Jquery.min.js