首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ToDo列表应用程序-表: jQuery追加()/后()、/.parent()、.parent().remove()不工作性质或未识别

ToDo列表应用程序-表: jQuery追加()/后()、/.parent()、.parent().remove()不工作性质或未识别
EN

Stack Overflow用户
提问于 2013-04-25 15:38:08
回答 3查看 2.1K关注 0票数 0

我正在跟踪这个,做一个要做的清单粘贴http://www.paulund.co.uk/create-sticky-notes-to-do-list-in-css-and-jquery

我需要帮助。我的jquery代码不工作/不能被浏览器识别。我要做的是在用户单击“Add”按钮时插入一个新行。

我贴在jsFiddle上:** http://jsfiddle.net/RJjRt/ **

我的jQuery代码:

代码语言:javascript
复制
$(document).ready(function(){
  // Add button click event
  $("#addNew").click(function(){
    addNewRow();
  });
});

// Add a new row when Add Task button is clicked
function addNewRow(){
 var numRows = $('#taskTable tr').length;
 $('#taskTable').append('
  <tr>
   <td><input type="text" id="title-'+numRows+'" placeholder="Your Task Name"/></td>
   <td><input type="text" id="description-'+numRows+'" placeholder="Task Description"/></td>
   <td><input type="button" class="deleteButton" id="delete-'+numRows+'" title="Delete Task" value="Delete" /></td>
  </tr>
 ');
}

我也试过

代码语言:javascript
复制
$('#taskTable tr:last').after(...

但也没用。

我的HTML代码:

代码语言:javascript
复制
<div class="around-table">
<table id="taskTable">
  <tr>
    <th>Task</th>
    <th>Description</th>
    <th></th>
  </tr>
  <tr>
    <td><input type="text" id="title-1" placeholder="Your Task Name"/></td>
    <td><input type="text" id="description-1" placeholder="Task Description"/></td>
    <td><input type="button" class="deleteButton" id="delete-1" title="Delete Task" value="Delete" /></td>
  </tr>
  <tr>
    <td><input type="text" id="title-2" placeholder="Your Task Name"/></td>
    <td><input type="text" id="description-2" placeholder="Task Description"/></td>
    <td><input type="button" class="deleteButton" id="delete-2" title="Delete Task" value="Delete" /></td>
  </tr>
</table>

<input type="button" id="addNew" value="Add Task" />

</div>

谢谢你的帮助。

-修复后

代码语言:javascript
复制
// Function that runs on page load
$(document).ready(function(){
  // Add button click event
  $("#addNew").click(function(){
    addNewRow();
  });
  // Delete button click event
  $('.deleteButton').click(function(){
    deleteRow($(this));
  });
});


// Add a new row when Add Task button is clicked
function addNewRow(){
  var numRows = $('#taskTable tr').length;
  $('#taskTable tr:last').after('\
    <tr>\
      <td><input type="text" id="title-'+numRows+'" placeholder="Your Task Name"/></td>\
      <td><input type="text" id="description-'+numRows+'" placeholder="Task Description"/></td>\
      <td><input type="button" class="deleteButton" id="delete-'+numRows+'" title="Delete Task" value="Delete" /></td>\
   </tr>\
  ');
}

// Delete the grandparent of the delete button
// which is the entire row of the table (tr > td > a)
function deleteRow(button){
 button.parent().parent().remove();
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-25 15:45:15

如果没有一些小技巧,就不能在JavaScript中使用多行字符串,因此代码将在行中失败。

代码语言:javascript
复制
$('#taskTable').append('

什么都不会执行。但是,如果用反斜杠转义换行符,则可以具有多行字符串:

代码语言:javascript
复制
$('#taskTable').append(' \

只需确保反斜杠确实是行中的最后一个字符。

不过,在本例中,您可以使用jQuery构建html:

代码语言:javascript
复制
$('#taskTable').append(
    $('<tr>').append($('<input>')
        .attr('type','text')
        .attr('id','title-'+numRows)
        .attr('placeholder','Your Task Name')
    ).append($('<input>')
        .attr('type','text')
        .attr('id','description-'+numRows)
        .attr('placeholder','Task Description')
    ).append($('<input>')
        .attr('type','button')
        .attr('id', 'delete-'+numRows)
        .attr('title', 'Delete Task')
        .val('Delete')
        .addClass('deleteButton)
    ))
);
票数 1
EN

Stack Overflow用户

发布于 2013-04-25 15:41:25

您尝试在js中追加多行字符串,如下所示

代码语言:javascript
复制
"foo \
bar"

代码语言:javascript
复制
  "foo"+
    "bar"
票数 1
EN

Stack Overflow用户

发布于 2013-04-25 15:43:40

您的代码抛出一个SyntaxError:unterminated string literal,您应该转义换行符。

代码语言:javascript
复制
function addNewRow() {
    var numRows = $('#taskTable tr').length;
    $('#taskTable').append('<tr>\
           <td><input type="text" id="title-' + numRows + '" placeholder="Your Task Name"/></td>\
           <td><input type="text" id="description-' + numRows + '" placeholder="Task Description"/></td>\
           <td><input type="button" class="deleteButton" id="delete-' + numRows + '" title="Delete Task" value="Delete" /></td>\
           </tr>\
   ');
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16219053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档