Javascript 动态创建的元素和事件

Javascript 动态创建的元素和事件,javascript,jquery,Javascript,Jquery,我想知道如何将事件添加到动态创建的元素中。 它在第一行可以正常工作,但需要将SplitSelectValue绑定到下一个生成的行 $('#SelID_').change(function () { SplitSelectValue($(this)); }); function SplitSelectValue () { var data =$("#SelID_ option:selected").val(); var arr = data.split('|'); $("#SelVala_

我想知道如何将事件添加到动态创建的元素中。 它在第一行可以正常工作,但需要将SplitSelectValue绑定到下一个生成的行

$('#SelID_').change(function () {
SplitSelectValue($(this));
});

function SplitSelectValue () {
var data =$("#SelID_ option:selected").val();   
var arr = data.split('|');
$("#SelVala_").val(arr[0]);
$("#SelValb_").val(arr[1]);
$("#SelValc_").val(arr[2]);
}


使用两个不同的表更新

使用事件-委派

$(document).on('change', '#SelID_', function () {
SplitSelectValue($(this));
});
相反,ID最好使用类选择器(ID在页面上必须是唯一的,另一种方式是生成ID dynamicali)

您需要的是

  • 活动代表团
  • 属性以选择器开头
  • 耐心修复错误
  • 试试看


    id应该是唯一的。如果您阅读JSFIDLE中的代码,那么您可以看到id是动态生成的。所以我想我需要使用函数(事件)和计数器。它对同一个表中的行很好,但是如果我在另一个表中创建一行呢
    $(document).on('change', '[id^="SelID_"]', function () {
        SplitSelectValue($(this));
    });
    
    function SplitSelectValue(obj) {
        var data = obj.find("option:selected").val();
        var arr = data.split('|');
        var tr = obj.closest('tr');
        tr.find("[id^='SelVala_']").val(arr[0]);
        tr.find("[id^='SelValb_']").val(arr[1]);
        tr.find("[id^='SelValc_']").val(arr[2]);
    }