检测要在.each()中使用的新DOM元素

时间:2015-09-09 17:18:53

标签: javascript jquery

我有以下输入字段:

subGroupInputs = $("td[data-field_name='sub_group'] input");

用户可以动态添加新输入。

$(subGroupInputs).each(function(input) {
    $(this).on("keyup", function(){ 
        console.log($(this).val());
    });
});

我需要获取所有值,甚至是动态添加的值,但我无法更新subGroupInputs。

我尝试过以下但是也不起作用:

        function setVariables(){
             subGroupInputs = $("td[data-field_name='sub_group'] input");
        }

        //Initial Variables on Page Load
        setVariables();

        //Set Variables Again after new elements are added.
        $('.my-button').on("click", function(){ 
            setVariables();
        });

2 个答案:

答案 0 :(得分:3)

如果要在jquery

中绑定尚未添加的对象,则应尝试使用delegate而非 on

答案 1 :(得分:2)

如果您有多个表,请尝试委托尝试将id放入$('table')。

$("table").on('keyup', "td[data-field_name='sub_group'] input", function(){
    console.log($(this).val());
});

这里的想法是表格获取实际从'td[data-field_name='sub_group'] input'传播的事件的所有事件命中