Перейти к содержимому

Фотография

index элементов


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 Дмитрий Калугин

Дмитрий Калугин

    Коммерсант

  • Киберсанты
  • PipPipPipPip
  • 202 сообщений
71
Очень хороший
  • Пол:Мужчина

Отправлено 19 Август 2011 - 19:24

Всем привет. Люди добрые подскажите как получить .html() или attr элемента зная его index.
var el = ($('a').index(this))

этот код возвращает null
$(document).ready(function()
{
	$('#test a').click(function()
	{
		var el = (($('#test a').index(this)));
		alert($('#test a:nth-child('+el+')').html());
	});
});

Тему гуглил, яндексил и чего там еще... :unsure:

Сообщение отредактировал diamond82: 19 Август 2011 - 19:36

  • 0
Помогая другим - мы учимся сами.

На правах рекламы

#2 Артём Еремеевский

Артём Еремеевский

    Свой человек

  • Киберсанты
  • PipPipPipPipPip
  • 2 144 сообщений
842
Очень хороший
  • Страна, Город:
    Россия, Красноярск
  • Пол:Мужчина

Отправлено 20 Август 2011 - 00:29

Зачем?

this - это уже текущий элемент, по которому клик произошел. Чтобы получить его HTML достаточно использовать конструкцию: $(this).html(), для аттрибута соответственно attr(), т.е. весь код будет такой:
$(document).ready(function()
{
        $('#test a').click(function()
        {
             alert($(this).html());
        });
});

Хотя ваш код по идее тоже должен выводить HTML (если все таки нужно через index определять), возможно проблема в лишних круглых скобках, попробуйте сделать alert на полученный индекс, чего вообще возвращается.
  • 1

#3 Дмитрий Калугин

Дмитрий Калугин

    Коммерсант

  • Киберсанты
  • PipPipPipPip
  • 202 сообщений
71
Очень хороший
  • Пол:Мужчина

Отправлено 20 Август 2011 - 04:24

Большое спасибо. Как всегда все оказалось гораздо проще.
И кстати
alert($('#test a').index(this));
возвращает индекс элемента...
  • 0
Помогая другим - мы учимся сами.

#4 Артём Еремеевский

Артём Еремеевский

    Свой человек

  • Киберсанты
  • PipPipPipPipPip
  • 2 144 сообщений
842
Очень хороший
  • Страна, Город:
    Россия, Красноярск
  • Пол:Мужчина

Отправлено 20 Август 2011 - 08:20

Ну тогда в теории $('#test a:nth-child('+el+')').html() должен все таки возвращать HTML, почему нет - трудно сказать, нужно тестить.
Поставьте Firefox и FireBug, сможете нормально тестить тогда. Там вкладка будет "Сценарий", где можно будет в реальном времени ввести любое jQuery выражение, типа $('#test a:nth-child(0)'), и посмотреть нашлось ли чего на странице. Там же есть вкладка "Консоль", где выводятся все ошибки, AJAX запросы (причем со всеми заголовками, ответами и т.п.) и ваша собственная информация, которая куда как более информативная чем alert. Чтобы в скрипте вывести что-то на консоль достаточно заменить alert на console.log, т.е. типа:
console.log($('#test a:nth-child('+el+')'))

  • 0

#5 Дмитрий Калугин

Дмитрий Калугин

    Коммерсант

  • Киберсанты
  • PipPipPipPip
  • 202 сообщений
71
Очень хороший
  • Пол:Мужчина

Отправлено 20 Август 2011 - 13:14

Спасибо за совет, так и сделаю
  • 0
Помогая другим - мы учимся сами.




Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей