2013-06-04 38 views
0

我知道这已被问了好几次,但它对我不起作用。我有这样的:只使用td查找完全匹配:包含

$("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”,但事实并非如此。有人可以帮忙吗?

+0

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

回答

4

你似乎想这样的:

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

这一个工程。我知道这很简单。非常感谢。 – user2430338

1

contains是子字符串匹配。你所做的第一项操作将会取代ANY节点,它在任何地方都有Hello,所以Hello World将被销毁。第二行不会匹配任何内容,因为文档中不再有Hello World节点。

如果你简单地恢复操作顺序:

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

然后它会如预期