使用数组元素时的jquery .find

时间:2012-09-21 15:16:32

标签: jquery

以下是代码示例:

$('#TBI tr.k-state-selected')[0].cells[0].find("input").val(selectedId).change();

我实际上是在尝试更改KendoUI网格上单元格的值。但由于某种原因,它在.find上给了我一个“对象不支持这种方法”。

如果我这样做:

$('#TBI tr.k-state-selected').find("input").val(selectedId).change();

它没有给我错误(但不是我想要的结果)。当我拿走数组元素时,从语法角度来看似乎很好。

所以我的问题变成了:当涉及到数组元素时,如何进行这样的查找。

3 个答案:

答案 0 :(得分:3)

如果我遵循您的伪代码逻辑,您可能需要

$('#TBI tr.k-state-selected:eq(0) td:eq(0) input').val(selectedId).change();

即:

第一行第一个单元格中的输入,在id TBI元素中选择了类k-state。

答案 1 :(得分:1)

我认为cell[0]不是jQuery对象,因此您无法在其上调用jQuery方法。

尝试再次将其包装到jQuery对象中

var $cell = $($('#TBI tr.k-state-selected')[0].cells[0]);

$cell.find("input").val(selectedId).change();

或者偏离正确的方法,修复你的选择器,以便在dystroy的答案中开始返回所需的元素,这样可以省去再次包装它的麻烦。

答案 2 :(得分:0)

尝试eq jquery函数来获取jquery对象,而不是使用[0]获取javascript对象

<强> Live Demo

$('#TBI tr.k-state-selected').eq(0).find("td:eq(0) input").val(selectedId).change();