jquery帮助获取包含某个类的数组中的元素

时间:2014-11-14 17:16:57

标签: javascript jquery

    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>​]

如何获得具有&#34;锚点的所有元素&#34;用class&#34; edit-row&#34;或&#34;删除行&#34;并获得所有其他没有它的人

//我正在编辑一个使用DataTables.Js的脚本我想要做的是将表行中的所有元素都放入(var jqTds = $(&#39;&gt; td:not(.hide_me)& #39;,nRow))现在我想在所有元素中包含一个输入,除了那些具有保存行类和编辑行类cos它们链接到保存/删除

提前致谢

3 个答案:

答案 0 :(得分:0)

不知道你为什么把它们放在“数组”中,但如果你在它们仍在DOM中时运行它,请使用:has伪选择器:

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

第一个读。 *使用类edit-row 找到锚点的任何td,或者使用类delete-row找到其中的锚点。“

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

答案 1 :(得分:0)

您可以使用$.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

答案 2 :(得分:0)

我能够这样做:

        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>';
            }