用jquery替换javascript语法

时间:2016-05-08 09:27:19

标签: javascript jquery

任何人都可以解释为什么这种替换不起作用以及如何使其起作用

我想用jquery

替换javascript代码
    var table = document.getElementById("tabell");
    var newRow = table.insertRow(-1);
    ...

WORKS !!!!

   var table = $('#tabell').val();
   var newRow = table.insertRow(-1);

不工作!!!

我收到以下错误

11:26:07,810 TypeError:table.insertRow不是函数

1 个答案:

答案 0 :(得分:0)

没有jQuery的版本可以执行以下操作:

  • var table =包含id="tabell"的DOMElement(假设为<table id="tabell">,但未严格执行)
  • var newRow = <tr> - DOMElement

现在,jQuery版本的作用是:

  • var table =空字符串
  • var newRow会抛出错误,因为字符串没有insertRow方法。

您需要更改的是让jQuery返回<table> - 元素,例如:

var table = $('#tabell')[0];

或者

var table = $('#tabell').eq(0);

虽然假设它始终存在,但这样做是让jQuery使用id=tabell收集元素列表并选择第一个元素。 如果这个假设确实有效,那么tabel变量将包含您所追踪的DOM元素,并且insertRow将被知道。

当您尝试转换为jQuery时,您可能希望将其重写为:

var tabel = $('#tabell');
var newRow = table.prepend('<tr>');

在这种情况下,tabelnewRow实际上是围绕匹配/创建的DOM元素的jQuery包装