【问题标题】:Jquery contains selector, regexJquery 包含选择器、正则表达式
【发布时间】:2012-05-14 17:15:48
【问题描述】:

这是我的代码:
假设name 设置为john

$("#first_table").append($('#second_table').find("tr:contains(" + name + ")"));

基本上我的网站上有 2 张桌子。我想将元素从第一个移动到第二个,但前提是它们完全匹配。我该怎么做?

现在,如果我的表中有(例如)johnjohn #1john #2,它们都会被移动。我只想移动john 并离开john #1john #2 谢谢! 编辑: 我希望代码能够完全匹配变量name。 因此,如果nameJOHN,则它只能得到JOHN。如果是JOHN #1,则只能得到JOHN #1,以此类推。这可能吗?

【问题讨论】:

    标签: jquery regex jquery-selectors contains


    【解决方案1】:

    由于每个名称大小写都对:contains(" + name +") 语句有效,因此它匹配所有名称。

    试试这个,用:not 省略带“#”的那个

    $("#first_table").append($('#second_table').find("tr:contains(" + name + "):not(:contains('#'))"));
    

    更新:

    如果您想准确了解里面的值。然后使用类似的东西

    $("#second_table tr td").each(function() {
       if($(this).text() == 'John') { 
         $(this).closest("tr").appendto($("#first_table")); //find the cotaining tr and append to another table
       }
    });
    

    【讨论】:

    • 谢谢!还有一件事——例如,我怎样才能得到 john #2?我希望代码能够完全匹配变量名。因此,如果名称是 JOHN,它必须只得到 JOHN。如果它是 JOHN #1,它必须只得到 JOHN #1,依此类推。这可能吗?
    【解决方案2】:

    这可能是缺少引号的情况。尝试在name 周围添加单引号,如下所示。

    $("#first_table").append($('#second_table').find("tr:contains('" + name + "')"));
    

    【讨论】:

    • @JernejPangeršič,您确定没有任何其他因素影响选择器,因为John A 不包含John B,因此两个条目都不应移动。你能确定name 肯定是John A,而不是John
    • 对不起,我解释错了。我编辑了原帖,你看看。给您带来的不便,我深表歉意。
    猜你喜欢
    • 2010-09-16
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    • 2012-03-07
    • 2017-10-25
    相关资源
    最近更新 更多