Jquery抓取一个select的id,其中有多个select具有相同的类名

时间:2011-03-26 22:30:06

标签: jquery onchange

我有一个使用jquery克隆元素的表单。所以可以有多个&lt; select&gt;具有相同的类名但不同的id例如。 <select name="ticket1" id="ticket1" class="ticket">

选择中的选项显示/隐藏<div id="hide1" class="hide">...</div> 这个jquery代码......

$(document).ready(function(){
  $('.hide').hide();
  $('select.ticket').change(function(){

    var hideNo=this.id.substr(6);
   console.log('This='+this);    //debug for firebug
   console.log('Id='+hideNo);//debug for firebug
    console.log('Value='+this.value);//debug for firebug
    $('#hide'+hideNo).toggle(this.value == 'child'||this.value == 'youth');
  });
  $(".ticket").change();
});

适用于第一个ID,但不适用于任何后续ID。

请问我做错了吗?

2 个答案:

答案 0 :(得分:0)

尝试将上面代码中的第三行更改为:

$('select.ticket').live("change", function(){

答案 1 :(得分:0)

使用live()delegate(),因此事件处理程序适用于与当前或将来添加的选择器匹配的任何元素。

另一种选择,如果您使用内置的.clone()方法。您可以使用.clone(true)克隆与该元素关联的任何数据和事件。