2015-02-04 3 views
5

Вот это мой HTML кодНе удалось получить значение данных атрибутов с помощью JQuery

<select class="changeOption"> 
{% for dBoy in dBoyList %} 
    <option value="{{dBoy.id}}" data-locid='{{dboy.location.id}}' 
{% endfor %} 
</select> 

Когда я выбрать любой вариант из выпадающего списка он показывает Undefine

JQuery код

$(".changeOption").change(function() { 
    var locId = $(this).data("locid") 
    alert("id: "+locId); 
}); 
+0

В вашем jQuery '$ (this)' относится к выбору, а не по выбору. – j08691

+0

Примечание: если вы не используете 'data' для других вещей позже, использование' data' только для доступа к значению атрибута 'data- *' делает справедливую бит дополнительной работы; просто используйте 'attr'. Конечно, если вы действительно используете 'data' для вещей в коде, которые вы не указали, это не применимо. –

ответ

4

this относится к контексту выбранного элемента. вам нужно найти в нем выбранную опцию, а затем получить атрибут:

$(".changeOption").change(function() { 
    var locId = $(this).find(':selected').data("locid") 
    alert("id: "+locId); 
}); 
+0

Да, только что понял, что 'data' находится в * своем * коде, комментарий должен быть направлен на него. –

Смежные вопросы