Jquery选择更改

时间:2011-05-11 09:22:03

标签: jquery select onchange

<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 ... 为什么呢?

5 个答案:

答案 0 :(得分:10)

你的代码很好。这是一个演示:http://jsfiddle.net/hKktc/1/

您没有获得第二次提醒呼叫的值的原因是因为prefix的{​​{1}}属性不存在,而select仅存在

答案 1 :(得分:4)

在您的代码中,$(this)是指<select>,而不是选项。 prefix

上不存在<select>属性

这将导致第二个示例出现问题。

答案 2 :(得分:4)

第二个alert将返回null,因为<select>没有属性prefix

答案 3 :(得分:1)

你到底在期待什么?

我发现第二个警告 - alert( $(this).attr('prefix') );是导致问题的警报。 您可以获得前缀编号的警报,然后获得null警报(由第二个警报引起)。

答案 4 :(得分:0)

您可能希望.val()而不是.attr('prefix'),以获得<select>的选定值。

$(document).ready(function() {  
    $('#Nazione').change(function(){

        alert( $(this).find("option:selected").attr('prefix') );
        alert( $(this).val('prefix') );
    });
  });