2012-03-12 5 views
4

У меня есть DataList:Получение значения других атрибутов на DataList выберите

<datalist id="subjects"> 
<?php foreach($subjects as $v){ ?> 
     <option data-subjectid="<?php echo $v[2]; ?>" value="<?php echo ucwords($v[1]); ?>"><?php echo ucwords($v[1]); ?></option> 
<?php } ?> 
</datalist> 

То, что я хочу сделать, это получить значение, которое хранится в атрибуте значения, выбранного data-subjectid. То, что я не делал до сих пор является вызов функции .each() в JQuery, как это:

//on Select Change 
var selectedvalue = $(this).val(); 
$('#subjects option').each(function(){ 
    if(current_value == selectedvalue){ 
     //get the data-subjectid of current value 
    } 
}); 

Есть лучше и более быстрый способ сделать это?

+0

Вы пробовали $ (это) .attr («данных subjectid») – spicavigo

ответ

1

Я не уверен, что это быстрее (я не уверен на 100%, как этот селектор работает под обложками), но вы можете использовать :selected selector, чтобы сделать код немного чище.

var subjectId = $('#subjects option:selected').attr('data-subjectid'); 
+0

это работает только на некоторых полях и не DataList –

+1

Этот ответ неправильный, то 'datalist' опции не поддерживают': select' pseudo-class (поскольку один 'datalist' может предоставить несколько полей формы, поэтому с помощью нескольких входов можно выбрать сразу несколько параметров) –