Получить значение атрибута

Тема в разделе "JavaScript", создана пользователем verfaa, 19 окт 2012.

Модераторы: ZiX
  1. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    371
    Симпатии:
    41
    Юзер кликает по элементу списка, в результате чего этот элемент получает selected в стиль
    Код:
    <li class="tovItem [Название товара]"             data-price="10"> <label> ... code... </label> </li>
    <li class="tovItem [Название товара] selected" data-price="15"> <label> ... code... </label> </li>
    <li class="tovItem [Название товара]"             data-price="18"> <label> ... code... </label> </li>
    
    В jquery мне нужно получить значение атрибута data-price у выбранного (имеющего selected) элемента списка
    Пробовал
    Код:
    var price_val = $('li.selected').attr("data-price");

    Но не работает. Как тут быть, версия jquery 1.5.2

    Так в том то и дело, что как я уже писал
    Код:
    var price_val = $('li.selected').attr("data-price");
    не срабатывает.
    Может по выборке что не так делаю?
    Если к примеру в классе у тега li прописано
    Код:
    class="tovItem sony-mv-512 selected"
    то этот тег попадет в выборку, если выбирать его как
    Код:
    $('li.selected')
    ??
     
  2. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.402
    Симпатии:
    1.183
    Очень замечательно срабатывает
    Код:
    var price_val = $('li.selected').attr("data-price");
    
    Если несколько тегов li с классом selected, то будет информация для первого.

    Посмотри консоль ошибок JS может быть там есть что-то интересное.
     
    indacircus нравится это.
  3. indacircus

    indacircus Создатель

    Регистр.:
    18 окт 2011
    Сообщения:
    16
    Симпатии:
    2
    1. Обновить jQuery до актуальной версии.
    2. Небольшое уточнение :)
    Код:
    var price_val = $('li:selected').attr("data-price");
     
  4. crazyzubr

    crazyzubr Создатель

    Регистр.:
    26 авг 2012
    Сообщения:
    23
    Симпатии:
    15
    Код:
    var price_val = $('li.selected').data("price");
    также нужно убедится, что класс selected есть у элемента, и лучше делать более подробную выборку, типа:
    Код:
    $('div.myclass ul.mylist li.selected')
     
  5. Dimik

    Dimik Создатель

    Регистр.:
    18 сен 2011
    Сообщения:
    21
    Симпатии:
    0
    Ну впринципи может подойти как вариант ещё так:
    Код:
    $('li').click(function(){
        var price_val = $(this).attr("data-price");
    })
    Снять клик непосредственно с этого элемента