期望结点时返回对象

时间:2018-07-26 09:40:11

标签: jquery

在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()的声明,但它们是我可以使用的唯一不会引发其他错误的组合。

如何将节点添加到结果为节点的节点上?

1 个答案:

答案 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]等处。