0

我有以下代码可以在单击时动态添加行:

<script language="javascript">
jQuery(function(){
    var counter = 1;
    jQuery('a.add-author').click(function(event){
        event.preventDefault();
        counter++;
        var newRow = jQuery('<tr><td><input type="text" name="first_name' +
            counter + '"/></td><td><input type="text" name="last_name' +
            counter + '"/></td></tr>');
        jQuery('table.authors-list').append(newRow);
    });
});
</script>
<table class="authors-list">
<tr>
    <td>author's first name</td><td>author's last name</td>
</tr>
<tr>
    <td>
        <input type="text" name="first_name" />
    </td>
    <td>
        <input type="text" name="last_name" />
    </td>
</tr>
</table>
<a href="#" title="" class="add-author">Add Author</a>

该代码在jsFiddle中运行良好,但是当我将其复制到记事本并尝试从 WAMP 服务器运行它时,它不起作用。

另一个问题:如何在每行旁边添加一个删除行按钮,以便在单击时删除该行?

4

4 回答 4

3

第二个问题的答案(代码略有改动):

$(function() {

    var $table = $('table.authors-list'),
        counter = 1;

    $('a.add-author').click(function(event){
        event.preventDefault();
        counter++;
        var newRow = 
            '<tr>' + 
                '<td><input type="text" name="first_name' + counter + '"/></td>' +
                '<td><input type="text" name="last_name' + counter + '"/></td>' +
                '<td><a class="remove">remove</a></td>'
            '</tr>';
        $table.append(newRow);
    });

    // Remove rows on click
    $table.on('click', '.remove', function() {
        $(this).closest('tr').remove();
    });
});

http://jsfiddle.net/YsgEL/

所以删除行的最好方法是监听一些remove链接上的点击事件并删除相应的父行。

于 2013-06-26T14:25:05.047 回答
3

您确定已将 JQuery 正确加载到 HTML 文件中吗?JQuery 可能已经在 J​​SFilde 中加载,但可能在您的项目中丢失。

于 2013-06-26T14:12:49.903 回答
1

在您的标记前添加以下代码行<script>

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>

这会将 jQuery 库加载到您的网页中,让您使用jQueryor$对象的所有函数和属性。

于 2013-06-26T14:17:44.297 回答
0

回答您的第一个问题: 请向我们提供更多信息... 此问题可能由多种原因引起。

回答您的第二个问题: 您可以将带有“remove_button”类的删除按钮附加到名为“newRow”的变量中,并为其添加一个 ID(即id="remove_button_" + counter)。

单击删除按钮时,调用一个函数,该函数正在提取按钮 ID 的编号,并使用remove()函数删除具有相同编号的其他元素

于 2013-06-26T14:15:49.883 回答