(this).closest('tr').next().length==0&&$(this).closest('tr').prev().length>0) { 警报(“最后一个字段”); var prevValue=$('select[name^=“locationFrom”],$(this.closest('tr').prev('tr')); if(prevValue.val()==$(this.val()) $(this.val(“”); } 其他的 { 警报(“中间区域”); var prevValue=$('select[name^=“locationFrom”],$(this.closest('tr').prev('tr')); var nextValue=$('select[name^=“locationFrom”],$(this.nextest('tr')。next('tr')); if(prevValue.val()=$(this.val()| | nextValue.val()==$(this.val()) $(this.val(“”); } }); var sCheck=newarray(); $('select[name^=“serial”]”)。每个(函数(i){ //警报(“值为:”+$(this.val()+”+$(“选项:选中”,this.text()); //jQuery.inArray($(this.val(),sCheck) 如果($(this).val()>0) { if(jQuery.inArray($(this.val(),sCheck)=-1){ sCheck.push($(this.val()); } 否则{ 警报(“串行”+$(“选项:已选择”,this).text()+“已选择多次”); $(this.val(“”); 返回false; } } }); }); jQuery('.dOnly').live('keyup',function() { this.value=this.value.replace(/[^0-9\.]/g'); }); }); .动态表{ 边框:实心1px#000; 边界塌陷:塌陷; } .dynatable th, .dynatable td{ 背景色:#ccc; 字体大小:14px; 字体颜色:#ffffff; 字体系列:Calibri; } .dynatable.原型{ } 标签错误 { 显示:块; 颜色:红色; } td{垂直对齐:顶部;} 路由名称: 身份证件 位置 电视连续剧 添加 选择位置 Loc 1 Loc 2 Loc 3 Loc 4 Loc 5 选择序列号 系列1 系列2 连载3 系列4 连载5 去除

(this).closest('tr').next().length==0&&$(this).closest('tr').prev().length>0) { 警报(“最后一个字段”); var prevValue=$('select[name^=“locationFrom”],$(this.closest('tr').prev('tr')); if(prevValue.val()==$(this.val()) $(this.val(“”); } 其他的 { 警报(“中间区域”); var prevValue=$('select[name^=“locationFrom”],$(this.closest('tr').prev('tr')); var nextValue=$('select[name^=“locationFrom”],$(this.nextest('tr')。next('tr')); if(prevValue.val()=$(this.val()| | nextValue.val()==$(this.val()) $(this.val(“”); } }); var sCheck=newarray(); $('select[name^=“serial”]”)。每个(函数(i){ //警报(“值为:”+$(this.val()+”+$(“选项:选中”,this.text()); //jQuery.inArray($(this.val(),sCheck) 如果($(this).val()>0) { if(jQuery.inArray($(this.val(),sCheck)=-1){ sCheck.push($(this.val()); } 否则{ 警报(“串行”+$(“选项:已选择”,this).text()+“已选择多次”); $(this.val(“”); 返回false; } } }); }); jQuery('.dOnly').live('keyup',function() { this.value=this.value.replace(/[^0-9\.]/g'); }); }); .动态表{ 边框:实心1px#000; 边界塌陷:塌陷; } .dynatable th, .dynatable td{ 背景色:#ccc; 字体大小:14px; 字体颜色:#ffffff; 字体系列:Calibri; } .dynatable.原型{ } 标签错误 { 显示:块; 颜色:红色; } td{垂直对齐:顶部;} 路由名称: 身份证件 位置 电视连续剧 添加 选择位置 Loc 1 Loc 2 Loc 3 Loc 4 Loc 5 选择序列号 系列1 系列2 连载3 系列4 连载5 去除,jquery,Jquery,首先,对于事件处理,我将使用委托而不是live,以便您可以在指定容器中定义事件: 您可以通过以下方式动态添加按钮: $('<button class="dynamic-button">my button</button>').appendTo($('#row_1')); $('#mycontainer').delegate('.dynamic-button', 'click', function() { $(this).parent().append('<

首先,对于事件处理,我将使用委托而不是live,以便您可以在指定容器中定义事件:

您可以通过以下方式动态添加按钮:

$('<button class="dynamic-button">my button</button>').appendTo($('#row_1'));

$('#mycontainer').delegate('.dynamic-button', 'click', function() {

    $(this).parent().append('<select><option>my dynamic drop down</option></select>');    

});
$(“我的按钮”)。附加到($(“#第1行”);
$('#mycontainer')。委托('.dynamic button','click',function(){
$(this.parent().append('我的动态下拉列表');
});

delegate的核心好处是什么?它看起来和现实生活中的情况差不多?第二,建议的代码放在哪里?行1和mycontainer放在哪里?谢谢。#第#行将是您希望按钮出现在表中的那一行#mycontainer将是一个表或div标记,您希望事件在其中绑定。与live相比,委托的优点是事件不必一直冒泡到文档级别,并使您能够更好地控制事件处理。我首先尝试了添加一个id行,然后在jquery中尝试了prot.find('[id^=“row_”]').attr(“value”,“row_”+id);行id的值没有更改?我希望我已经澄清了我需要在每行第一个序列旁边的按钮。因此,当用户按下“添加”按钮时,只能在该行框中生成更多下拉列表。非常感谢。
$('<button class="dynamic-button">my button</button>').appendTo($('#row_1'));

$('#mycontainer').delegate('.dynamic-button', 'click', function() {

    $(this).parent().append('<select><option>my dynamic drop down</option></select>');    

});