【问题标题】:Jquery select changejQuery选择更改
【发布时间】:2011-08-23 03:33:09
【问题描述】:
<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... 为什么?

【问题讨论】:

  • jsfiddle.net/wzzMm 在 Chrome 中工作!
  • 你没有关闭最后一个条目的选项标签。这是代码中的错字还是错误?
  • 我相信是第二个alert 导致了这些问题。
  • 这对我有用如果我向 jsfiddle 询问 jQuery 1.6。在 jQuery 1.5.2 上,这两个警报都为 null。

标签: jquery select onchange


【解决方案1】:

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

您没有获得第二次警报调用的值的原因是因为属性 prefix 不存在于 select 并且仅存在于 option

【讨论】:

  • 这是一个非常奇怪的问题。问题不在于代码,而在于属性名称。如果你把它改成prefix1 它可以工作:jsfiddle.net/hKktc/7 我不知道这是一个错误还是别的什么
  • prefix 可能是关键字! :)
【解决方案2】:

在您的代码中,$(this) 指的是&lt;select&gt;,而不是选项。 prefix 属性在&lt;select&gt; 上不存在

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

【讨论】:

    【解决方案3】:

    第二个alert 将返回null,因为&lt;select&gt; 没有prefix 属性。

    【讨论】:

      【解决方案4】:

      您到底期待什么?

      我发现第二个警报 - alert( $(this).attr('prefix') ); 是导致问题的原因。 照原样,您会收到前缀编号的警报,然后是 null 警报(由第二个警报引起)。

      【讨论】:

      • 按照上面@JohnP 的提示 - 如果您将属性prefix 更改为其他内容,它确实可以完美运行。我想prefix 是保留的。此外,这更漂亮 - $(document).ready(function() { $('#Nazione').change(function(){ alert ( $('option:selected', this).attr('prefix1') ); }); }); @SLaks 在this thread 中的代码。
      【解决方案5】:

      您可能想要.val() 而不是.attr('prefix'),以获得&lt;select&gt; 的选定值。

      $(document).ready(function() {  
          $('#Nazione').change(function(){
      
              alert( $(this).find("option:selected").attr('prefix') );
              alert( $(this).val('prefix') );
          });
        });
      

      【讨论】:

        猜你喜欢
        • 2016-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-12
        相关资源
        最近更新 更多