2011-03-26 55 views
0

我有一个表单,其中有使用jquery克隆的元素。所以可能有多个< select>具有相同的类名称,但不同的id例如。 <select name="ticket1" id="ticket1" class="ticket">Jquery抓取选择的id,其中有多个选择具有相同的类名称

从选择节目的选择/隐藏着一个<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(); 
}); 

Works的第一个ID,但没有任何后续的。

我是不是做错了?

+0

在此之后添加了克隆吗? – Marc 2011-03-26 22:33:19

回答

0

尝试改变上面代码中的第三行:

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

它现在在头部工作,但不是身体!我想在它的身体,因为它会成为一个wordpress插件的一部分,我需要能够改变一些值...'$(document).ready(function(){ $('。hide') .hide(); $( '票 ')生活(' 变',函数(){// 现场处理程序调用 VAR hideNo = this.id.substr(6); \t $('# hide'+ hideNo).toggle(this.value =='3'|| this.value =='2'); }); });'为什么它不在身体中工作? – 2011-03-28 11:06:43

+0

没有看到脚本和标记的顺序,我不知道。 – Marcel 2011-03-28 11:15:22

+0

其实这是有帮助的 - 所以它不是那个代码只会在头上工作!其他的东西一定是错的! – 2011-03-28 17:02:37

0

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

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

相关问题