【问题标题】:Find only exact match using td:contains [duplicate]使用 td:contains 仅查找完全匹配 [重复]
【发布时间】:2013-05-31 06:26:42
【问题描述】:

我知道这已经被问过好几次了,但它对我不起作用。我有这个:

$("td:contains('Hello')").html("Hi");                   
$("td:contains('Hello World')").html("Bye");

我已经这样做了:

$("td:contains('Hello')").filter(function() { 
    return $(this).text() == "Hi";
});

但两者都出现了“嗨”。我只希望将具有确切字符串“Hello”的表数据替换为“Hi”。 “Hello World”应该替换为“Bye”,但事实并非如此。有人可以帮忙吗?

【问题讨论】:

  • 首先运行更具体的命令(即 Hello World),然后运行不太具体的包含。

标签: jquery selector contains


【解决方案1】:

你似乎想要这个:

$("td").filter(function() { 
    return $(this).text() == "Hello";
}).text('Hi');

【讨论】:

  • 这个有效。我知道事情就是这么简单。非常感谢。
【解决方案2】:

contains 是一个子字符串匹配。您执行的第一个操作将替换其中包含HelloANY 节点ANYWHERE,因此Hello World 将被销毁。然后第二行将不匹配任何内容,因为文档中没有更多的Hello World 节点。

如果您只是颠倒操作顺序:

$("td:contains('Hello World')").html("Bye");
$("td:contains('Hello')").html("Hi");                   

然后它会按预期工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    相关资源
    最近更新 更多