jQuery帮助获取包含特定类的数组中的元素

jquery help to get element in array that contains certain class

本文关键字:数组 元素 帮助 获取 包含特 jQuery      更新时间:2023-09-26
    jqTds =[
<td class=​"hidden-xs  sorting_1">​text1​</td>​
<td class="​ ">​text2​</td>​
<td class=​" ">​text3​</td>​
<td class=​" ">​text4​</td>​
<td class=​" ">​<a href=​"#" class=​"edit-row">​Edit​</a>​</td>​
<td class=​" ">​<a href=​"#" class=​"delete-row">​Delete​</a>​</td>​]

如何获取所有具有"锚点"的元素,并带有类"编辑行"或"删除行",并获取所有其他没有它的元素

我正在编辑一个使用 DataTables.js 的脚本,我正在尝试做的是将表行中的所有元素放入(var jqTds = $('>td:not(.hide_me)', nRow)),现在我想在所有元素中包含一个输入,除了那些具有保存行类和编辑行类的元素,因为它们链接到保存/删除

提前致谢

不知道为什么将它们放在"数组"中,但是如果您在它们仍在DOM中时运行此操作,请使用:has伪选择器:

var $tds = $('td:has(a:.edit-row,a:delete-row)');
var $otherTds = $('td').not($tds);

第一个是。 *查找任何 TD 中有一个edit-row 的锚点其中有一个类 delete-row "的锚点。

第二个只是说,找到所有td并从匹配中排除第一批:)

您可以使用

$.grep()来过滤数组。

使用传递给$.grep()的函数,您可以尝试在当前<td>中找到您的元素。如果找不到a.edit-rowa.delete-row,则返回 true,否则返回 false:

var filteredTds = $.grep(jqTds, function(td){
    var $td = $(td);
    return !$td.find('a.edit-row').length && !$td.find('a.delete-row').length;
});

JSFiddle

我能够这样做:

        for (var i = 0; i < editColumn.length; i++) {
            if ($(editColumn[i]).find("a").hasClass("edit-row") == true) {
                editColumn[i].innerHTML = '<a class="save-row" href="">Salvar</a>';
            }
            else if ($(editColumn[i]).find("a").hasClass("delete-row") == true) {
                editColumn[i].innerHTML = '<a class="cancel-row" href="">cancelar</a>';
            }