如何重新应用jQuery选择器?
我有一个javascript函数,它选择几个元素,然后执行一些DOM操作。当DOM操作涉及添加更多与初始选择器匹配的元素时,我希望重新应用它们以包含新元素如何重新应用jQuery选择器?,jquery,Jquery,我有一个javascript函数,它选择几个元素,然后执行一些DOM操作。当DOM操作涉及添加更多与初始选择器匹配的元素时,我希望重新应用它们以包含新元素 var row1 = table.find("tr.row1 td"); var row2 = table.find("tr.row2 td"); var row3 = table.find("tr.row3 td"); for(...) { if() {//Some condition is met table.chi
var row1 = table.find("tr.row1 td");
var row2 = table.find("tr.row2 td");
var row3 = table.find("tr.row3 td");
for(...) {
if() {//Some condition is met
table.children().each(function(row) {
row.append(row.children().eq(5).clone());
});
row1.refresh(); // I'd like something here like refresh, rather than row1 = table.find("tr.row1 td");
}
//Code that uses row1, row2, and row3
}
是否有一个函数可以执行我在
refresh()
行中查找的功能?未存储允许获取结果集的初始选择器,因此您可以重新执行此选择器:
row1 = table.find("tr.row1 td");
实际上,没有一个函数可以实现您所描述的功能,您只需重新发出原始请求 如果您有一个jQuery对象(如
行1
),则可以使用此未记录的机制重新运行原始请求:
row1 = $(row1.selector, row1.context);
…但是,选择器
属性是未记录的(上下文
已记录在案),因此,它可能在1.7.2中不起作用
更好的方法可能是,只要您实际使用jQuery对象,就只保留行中的jQuery对象,但这取决于重新获取列表的成本以及这样做的频率。jQuery对象本质上是
HTMLElements
的数组。添加新元素时,只需按一下即可:
row1.push(row.children().eq(5).clone().appendTo(row)[0]);
我没有测试此链,但我相信appendTo()
将返回克隆的jQuery对象,[0]
将返回相应的HTMLElement