2013-02-07 263 views
1

我需要找到一個表格單元格,其中包含某些文本值並將其更改爲其他內容。更改表格單元格值jquery

<table><tr> 
<td>You are nice</td> 
<td>I hate you</td> 
</tr></table> 

找到包含「我恨你」並將其改爲「我愛你」的表格單元格。

我該如何在jQuery中做到這一點?

+0

你可以看看http://stackoverflow.com/questions/5115152/jquery-find-and-replace-string –

回答

4

使用:contains選擇:

$('td:contains("I hate you")').text('....'); 

使用filter方法:

$('td').filter(function(){ 
    // contains 
    return $(this).text().indexOf("I hate you") > -1; 
    // exact match 
    // return $(this).text() === "I hate you"; 
}).text('...'); 

或者:

$('td').text(function(i, text){ 
    return text.replace('I hate you', 'I love you!'); 
}); 
0

使用querySelectorAll(「td」),遍歷所有返回的元素並檢查textNode的值。

var tds = document.querySelectorAll("td"); 
for (var i = 0; i < tds.length; i++) { 
    if (tds[i].firstChild.nodeValue == "I hate you"){ 
     tds[i].firstChild.nodeValue = "I love you"; 
    } 
} 
1

一個簡單contains選擇應該做的伎倆,然後設置文本值

$("td:contains('I hate you')").text('I love you'); 

contains selector ref

+0

作品不錯,但請注意,這也將選擇TD的包含文字「我恨你所有」etcetera ...(不完全匹配) – jtheman

+0

@jtheman哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈這裏有一個代碼的氣味,當你想交換一個文本值,而不是顯式匹配表格單元格,例如... –