当我在桌子上查找隐藏的字段时,我看到了两个隐藏的字段。但是,我想通过ID进一步细化这两个字段。我注意到当我使用“包含”在整个表上使用find时,我得到了我的2个字段。但是,如果我查找隐藏字段的查找结果,它将返回一个空集。任何人都可以解释为什么会这样吗?
var table = sender.parentNode.parentNode.parentNode.parentNode;
// this finds my 2 hidden fields
var hidden_fields = $(table).find("input[type='hidden']");
// this finds each of the 2 fields individually by ID
var my_id_fieldA = $(table).find("[id*='hfMyIdFieldA']");
var my_id_fieldB = $(table).find("[id*='hfMyIdFieldB']");
// but this returns an empty set
var my_id_fieldA = $(hidden_fields).find("[id*='hfMyIdFieldA']");
答案 0 :(得分:2)
您正在寻找filter
功能,而不是find
。 find
选择子元素,filter
过滤当前选择。
也没有理由找到那样的表......尝试这样的事情。
var $table = $(sender).closest("table")
, $hidden_fields = $table.find("input[type='hidden']")
, $my_id_fieldA = $hidden_fields.filter("[id*='hfMyIdFieldA']")
, $my_id_fieldB = $hidden_fields.filter("[id*='hfMyIdFieldB']")
, $my_id_fieldA = $hidden_fields.filter("[id*='hfMyIdFieldA']")
;