Javascript 用prototype观察多个select菜单

Javascript 用prototype观察多个select菜单,javascript,prototypejs,Javascript,Prototypejs,我想观察多个选择菜单,并使用prototype响应它们的更改,但似乎只观察到第一个菜单。这是我的代码: $('product_options').select('select').invoke("observe","change",optchange); 例如,如果product_选项中有3个选项,那么它只观察第一个选项,我认为这可能是因为调用,所以我尝试了以下方法: $('product_options').select('select').each(function(sel){ $

我想观察多个选择菜单,并使用prototype响应它们的更改,但似乎只观察到第一个菜单。这是我的代码:

$('product_options').select('select').invoke("observe","change",optchange);
例如,如果product_选项中有3个选项,那么它只观察第一个选项,我认为这可能是因为调用,所以我尝试了以下方法:

$('product_options').select('select').each(function(sel){
    $(sel).observe("change",optchange);
});
但还是不行,有什么想法吗


选择器作为
控制台肯定没有问题。debug()
向我显示了所有的选择菜单您是否检查了JS错误控制台?下面的操作很好:

<html>
  <head>
    <title>optchange</title>
    <script type="text/javascript" src="prototype.js"></script>
  </head>
  <body>
    <div id="product_options">
      <select id="o0">
        <option>1</option>
        <option>2</option>
      </select>
      <select id="o1">
        <option>1</option>
        <option>2</option>
      </select>
      <select id="o3">
        <option>1</option>
        <option>2</option>
      </select>
    </div>
    <script type="text/javascript">
      function optchange(e) {
        alert("optchanged");
      }
      $('product_options').select('select').invoke("observe","change", optchange);
    </script>
  </body>
</html>

选择更改
1.
2.
1.
2.
1.
2.
功能选项更改(e){
警报(“optchanged”);
}
$('product_options')。选择('select')。调用(“观察”、“更改”、“选择更改”);

很好,应该以最小的复杂性检查它。这肯定是其他地方的问题。积分是你的:)非常有用!我怎么知道在“optchange”中是哪个select触发了它?@xain optchange被传递了一个事件对象(在示例“e”中)。您可以请求触发事件的元素。var触发器=e.element()