2013-06-04 35 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");     

然後它會如預期