在ID为“ myTable”的表中进行了一些交互之后,我想将某些节点(表的右下方)传递给函数myFunction。出现错误,“参数1不是'node'类型”。
我知道$(this)[0]
给了我节点,但是当我使用theNodes
将它们添加到add()
时,它给出了一个对象。
$("#myTable").mouseup(function () {
var theNodes = $();
$("#myTable").find("tr:gt(2) td:gt(4)").each( function() {
$(theNodes).add($(this)[0]);
});
var result = myFunction($(theNodes));
});
这可能是我对theNodes
或使用add()
的声明,但它们是我可以使用的唯一不会引发其他错误的组合。
如何将节点添加到结果为节点的节点上?
答案 0 :(得分:3)
您一直过度使用$()
,最后得到了一个包含jQuery对象的jQuery对象(集合)。 (具体来说:调用.add
并传入jQuery对象而不是DOM节点或数组最终会将该jQuery对象放入您要调用add
的jQuery对象中。)
要为这些节点传递jQuery集(匹配节点周围的包装器),只需执行以下操作:
$("#myTable").mouseup(function () {
var result = myFunction($("#myTable").find("tr:gt(2) td:gt(4)"));
// ...presumably use `result` here...
});
myFunction
将收到一个jQuery集,该集的原始DOM元素将位于[0]
,[1]
等处。