【问题标题】:Appending a row to the table jQuery追加一行到表jQuery
【发布时间】:2014-09-06 15:58:44
【问题描述】:

我正在尝试使用 jQuery 追加一行,但该行没有追加。

   <script type="text/javascript">

    var counter = 1;
    $(function(){
         $('input#add_edu').click(function(){
         counter += 1;
         alert(counter);
         var paddingRow = "<tr id=\"padding-row\"><td id=\"padding-tab\"> </td> <td id=\"padding\"> </td><td id=\"padding-tab\"> </td><tr></tr>";

         var newRowLabel = "<tr><td class=\"label\">Course Name </td><td id=\"paddingtab\"></td><td class=\"label\">Institution Name</td><td id=\"paddingtab\"< </td><td class=\"label\">Start Date </td><td id=\"paddingtab\"< </td><td class=\"label\">End Date </td><td id=\"paddingtab\"></td><td class=\"label\">Percentage or CGPA </td></tr>";

         var newRowField = '<tr><td><input type="text" name="course_name_'+ count +'" id="course_name_'+ count +'" value=""></input></td><td></td><td><input type="text" name="college_name_'+ count +'" id="college_name_'+ count +'" value=""></input></td><td></td><td><input type="text" name="start_dt_'+ count +'" id="start_dt_'+ count +'"  value=""></input></td><td></td><td><input type="text" name="end_dt_'+ count +'" id="end_dt_'+ count +'" value=""></input></td><td></td><td><input type="text" name="cgpa_'+ count +'" id="cgpa_'+ count +'" value=""></input></td></tr>';


         $('#edu_table').append(paddingRow);
         $('#edu_table').append(newRowLabel);
         $('#edu_table').append(newRowField);

         });
        });
</script>

这是 HTML 代码:

<table id="edu_table">
      <tr>
          <td class="label">Course Name </td>
          <td id="paddingtab" />
          <td class="label">Institution Name </td>
          <td id="paddingtab" />
          <td class="label">Start Date </td>
          <td id="paddingtab" />
          <td class="label">End Date </td>
          <td id="paddingtab" />
          <td class="label">Percentage or CGPA </td>

        </tr>
</table>

我试图通过单击按钮将行追加到表中,但行没有追加。在我附加变量 newRowField 之前,这些行附加得很好。

$('#edu_table').append(newRowField);

【问题讨论】:

  • 我正在尝试将其附加到表 $('#edu_table').append(newRowField);
  • 您是否在 JS 控制台中看到错误?看起来,至少,最后一个 value="" 需要一些转义;这不是一个有效的字符串。
  • 实际上,value 的属性没有一个被转义。

标签: jquery html-table


【解决方案1】:

在所有value="" 情况下,您的字符串都包含非转义引号。字符串用单引号,里面的 HTML 用双引号,可以省去很多麻烦:

var newRowField = '<tr><td><input type="text" name="course_name_' + count + '" id="course_name_' + count + '" value=""></td>' +
  '<td></td><td><input type="text" name="college_name_' + count + '" id="college_name_' + count + '" value=""></td>' +
  '<td></td><td><input type="text" name="start_dt_' + count + '" id="start_dt_' + count + '" value=""></td>' +
  '<td></td><td><input type="text" name="end_dt_' + count + '" id="end_dt_' + count + '" value=""></td>' +
  '<td></td><td><input type="text" name="cgpa_' + count + '" id="cgpa_' + count + '" value=""></td></tr>';

【讨论】:

  • 这就是为什么它仍然有助于 (a) 查看您的 HTML 和 (b) 查看您的 JS 控制台中是否有任何错误。
  • 您还声明了一个名为 counter 的变量,但您在字符串定义中使用了一个名为 count 的变量(未声明)。同样,JavaScript 控制台会告诉你的事情。请看那里。
  • 来自网站管理员 StackExchange:How to open the JavaScript console in different browsers?
  • 谢谢你 Paul :) ...它成功了..我犯了最简单的错误真是太愚蠢了...对不起。
  • 我们犯了这些错误,而且我们都倾向于看到我们打算编写的代码,而不是我们实际编写的代码。只是想强调一下,控制台可以帮助您更早地发现错误。
猜你喜欢
  • 2018-10-06
  • 2017-02-14
  • 1970-01-01
  • 2017-11-23
  • 1970-01-01
  • 1970-01-01
  • 2016-12-17
  • 2014-06-07
  • 1970-01-01
相关资源
最近更新 更多