任何人都可以解释为什么这种替换不起作用以及如何使其起作用
我想用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不是函数
答案 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>');
在这种情况下,tabel
和newRow
实际上是围绕匹配/创建的DOM元素的jQuery包装