动态插入表:JQuery未检测到最后一行

时间:2016-05-18 11:22:45

标签: javascript jquery html

我使用JQuery根据用户插入创建动态表行。

我的HTML:

     <table id="list">
            <thead>
              <tr>
                <th>first header</th>
                <th>second header</th>
                <th>third header</th>
              </tr>
            </thead>
             <tbody>
               <tr>
                 <td><input type="text" name="first" /></td>
                 <td><input type="text" name="second" id="second" /></td>
                 <td><button class="alert hollow button" href="#">X</button>                 </td>
               </tr>
             </tbody>
     </table>

和JavaScript:

$('#list tr:last td:nth-last-child(2) input[name=second]').keyup(function (event) {

    if ($(this).val().length > 4 && $('#list tr:last td:nth-last-child(2) input[name=second]').val().length > 4) {
        $('#list tbody').append('<tr>
                     <td><input type="text" name="first" /></td>
                     <td><input type="text" name="second" id="second" /></td>
                     <td><button class="alert hollow button" href="#">X</button></td>
                   </tr>');
    }
});

上面的代码仅适用于第一行,插入的行没有JS代码隐藏。

2 个答案:

答案 0 :(得分:2)

您还没有给出完整的代码,但我怀疑这是您的问题..

替换此

OnMouseDown

用这个

$('#list tr:last td:nth-last-child(2) input[name=second]').keyup(function (event)

您可能没有使用正确的事件委派,并且您正试图在尚未存在的元素上绑定$('#list').on('keyup', 'tr:last td:nth-last-child(2) input[name=second]', function (event) 事件(您说动态添加了行)。相反,我们将keyup绑定到作为初始文档一部分的表,并说明当满足X条件的子项触发了keyup事件时发生的事情

答案 1 :(得分:1)

您的功能不会绑定到页面加载时不存在的元素,使用 aFlightList = aFlightList.Where(f => airlines.Any(a => a == f.AirCoNam1)) .ToArray(); 来生成动态元素

on