Javascript.RU

Не могу изменить id элемента

Здравствуйте, жители JavaScript.ru

Есть HTML код с неизвестным количеством ссылок у которых одинаковый ид

<a id="555" onClick="test();return false;" href="сайт1">сайт1</a>
<a id="555" onClick="test();return false;" href="сайт2">сайт2</a>
<a id="555" onClick="test();return false;" href="сайт3">сайт3</a>

При нажатии на ссылку у неё должен смениться ид на 777, и должен выполниться скрипт

function test() {
        var id_link;
        $(document).ready(function () {
           id_link = $('#777').attr('href');
});
//и т.д.
}
function close() {
document.getElementById('container').style.display = 'none';
}

При нажатии на close() ид должен смениться на исходный

Скрипт должен выполняться для каждой ссылки в отдельности

Никак не могу это сделать
Пробовал делать так

onClick="this.id='777';test();this.id='555';return false;"

но каждый раз загружаемая ссылка остаётся в скрипте, т.е. при нажатии сначала на сайт2, а потом на сайт1 ссылка не перезагружается и загружается окно сайт2, вместо сайт1

-2

Автор: Гость (не зарегистрирован), дата: 13 февраля, 2013 - 19:37
#permalink

ID на странице должен быть уникальным.


Автор: OT_VINTA, дата: 13 февраля, 2013 - 19:41
#permalink

Не понял...


Автор: Алексей Гаев (не зарегистрирован), дата: 13 февраля, 2013 - 20:25
#permalink

1. id не может быть одинаковый у нескольких элементов, не ждите нормальной работы от такой разметки
2. вместо attr лучше использовать prop
3. onClick в аттрибутах — страшный моветон
4. не понятно зачем менять айди перед выполнением скрипта

Если по клику нужно в id_link положить текущую ссылку, то код будет такой:

$(function () {
$('a').click(function() {
var id_link = '';
id_link = $(this).prop('href');
close();
});
});


Автор: OT_VINTA, дата: 13 февраля, 2013 - 20:34
#permalink

А в чём принципиальное различие между prop и attr
Мне не нужны все ссылки, как сделать выбор не по тегу а по классу?


Автор: MeFCorvi, дата: 14 февраля, 2013 - 01:17
#permalink

prop() - для работы со свойствами узла, attr() - для работы с атрибутами. Есть тонкое различие между понятием свойства и атрибута. Скажем, attr('checked') == 'checked', но prop('checked') == true. Более того, attr вернет значение атрибута узла из разметки, а prop - реальное значение свойства. Т.е. в некоторых версиях jQuery, attr('checked') == 'checked' даже если prop('checked') == false. На самом деле, в большинстве случаев большой разницы нет, но, используя prop, можно избежать некоторых странных ошибок.

> Мне не нужны все ссылки, как сделать выбор не по тегу а по классу?
Если нужен выбор по классу, то используйте селектор класса. Это же jQuery, можно использовать любой валидный CSS селектор. $('a.someClass'), например, или $('.someClass > a.someClass2[href$=someUrl]').


Автор: OT_VINTA, дата: 14 февраля, 2013 - 16:33
#permalink

Спасибо всем, скрипт заработал как надо.


Автор: limpi, дата: 17 июля, 2013 - 11:22
#permalink

Вы не забыли что идентификатор не должен начинаться с цифр ?


 
Поиск по сайту
Другие записи этого автора
OT_VINTA
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Популярные таги
Последние темы на форуме
Forum