Ответ 1
Ваш код в порядке. Вот демо: http://jsfiddle.net/hKktc/1/
Причина, по которой вы не получаете значение для второго вызова оповещения, состоит в том, что атрибут prefix
не существует для select
и существует только для option
<select id="Nazione" name="Nazione">
<option prefix='+93' value='AF' >Afghanistan </option>
<option prefix='+355' value='AL' >Albania </option>
<option prefix='+213' value='DZ' >Algeria </option>
<option prefix='+376' value='AD' >Andorra .... etc
</select>
и это js
$(document).ready(function() {
$('#Nazione').change(function(){
alert( $(this).find("option:selected").attr('prefix') );
alert( $(this).attr('prefix') );
});
});
У меня есть предупреждение NULL... ЗАЧЕМ?
Ваш код в порядке. Вот демо: http://jsfiddle.net/hKktc/1/
Причина, по которой вы не получаете значение для второго вызова оповещения, состоит в том, что атрибут prefix
не существует для select
и существует только для option
В вашем коде $(this)
ссылается на <select>
, а не на параметр. Атрибут prefix
не существует на <select>
Это вызовет проблему со вторым примером.
Второй alert
возвращает null, потому что <select>
не имеет атрибута prefix
.
Чего именно вы ожидаете?
Я обнаружил, что второе предупреждение - alert( $(this).attr('prefix') );
является тем, что вызывает проблему.
Как есть, вы получаете предупреждение о номере префикса, затем предупреждение о нуле (вызванное вторым предупреждением).
Вероятно, вам понадобилось .val()
not .attr('prefix')
, чтобы получить выбранное значение <select>
.
$(document).ready(function() {
$('#Nazione').change(function(){
alert( $(this).find("option:selected").attr('prefix') );
alert( $(this).val('prefix') );
});
});