使用jQuery基于某些条件替换TD的内容

时间:2011-12-15 21:45:42

标签: jquery

我需要完成以下任务:

我有一个表格,其中包含我需要编辑/格式化的数据:

<tr><td>Tools and Other: Hammers</td><tr>
<tr><td>Tools and Other: Wrenches</td><tr>

根据条件,我需要将内容更改为以下内容:

<tr><td>Toolbox: Hammer</td></tr>
<tr><td>Toolkit: Wrench</td></tr>

我如何简单使用jQuery动态更改这两个TD的内容?其次 - 如果我决定这样做,我将如何从每个TD中删除“工具和锤子” - 就像这样:

<tr><td>Hammers</td></tr>
<tr><td>Wrenches</td></tr>

2 个答案:

答案 0 :(得分:1)

您可以像这样更改TD的上下文;

$('td').html(function() {
    return $(this).text().replace('Tools and Other: ', '');
});

Example on jsFiddle

答案 1 :(得分:0)

给定一个标识为blah的表,例如:

<table id="blah">
    <tr><td>Tools and Other: Hammers</td></tr>
    <tr><td>Tools and Other: Wrenches</td></tr>
</table>

您可以使用以下代码进行替换 - http://jsfiddle.net/Khs7N/

$("#blah tr td").each(function() {
    $(this).text(
        $(this).text().replace(
            /^Tools and Other/,
            "Toolbox"
        )
    );
});

开头的jQuery selector会找到标识为blah的元素,找到所有<tr>个子元素,以及所有元素的<td>个子元素。然后它将execute the function for each这些元素。

该函数只是抓取文本,在其上调用the JavaScript string.replace function(使用正则表达式)来纠正文本,然后使用新字符串设置元素的整个文本。

regular expression仅使用^元字符在字符串的开头匹配“工具和其他”。