扫描表数据并替换html表中的某些字符串

时间:2015-05-29 19:00:37

标签: javascript jquery html

我有下表

<table class="data">
    <thead>
    <tr>
        <th>1</th>
        <th>2</th>
        <th>3</th>
    </tr>
    </thead>
    <tbody>
    <tr>
        <td>
            1 data
        </td>
        <td>
            2 data
        </td>
        <td>
            123456789123
        </td>
    </tr>
    </tbody>
</table>

如何动态扫描表并仅替换存储123456789123等信息的第三个表体td值中的值。

此信息应放在特定字符串位置的某些字符上,以便

<td> 123456789123 </td>应为<td> 12345678*12* </td>

4 个答案:

答案 0 :(得分:1)

请根据您的需要找到以下代码块,我已为您要修改其值的TD添加了一个特定的类。

&#13;
&#13;
$( document ).ready(function() {
  $('.value_td').each(function(key, ele){
      
    // Getting Original Value
    var original_val = $(ele).text().trim();
    
    // You can change your logic here to modify text
      var new_value = original_val.substr(0, 8) + '*' + original_val.substr(9, 2) + '*';
      
    // Replacing new value
    $(ele).text(new_value);
  });
});
&#13;
<table class="data">
    <thead>
    <tr>
        <th>1</th>
        <th>2</th>
        <th>3</th>
    </tr>
    </thead>
    <tbody>
    <tr>
        <td>
            1 data
        </td>
        <td>
            2 data
        </td>
        <td class="value_td">
            123456789123
        </td>
    </tr>
    </tbody>
</table>
&#13;
&#13;
&#13;

JS Fiddle

答案 1 :(得分:1)

要按索引替换所选文本,请使用:

// replace the 'n'th character of 's' with 't'
function replaceAt(s, n, t) {
    return s.substring(0, n) + t + s.substring(n + 1);
}

$('td:nth-of-type(3)').each(function(i, item){
    $(this).text($(this).text().trim()); // remove extra spaces
    $(this).text(replaceAt($(this).text(), 8, '*')); // replace character in position 8
    $(this).text(replaceAt($(this).text(), 11, '*')); // replace character in position 11
});

查看工作演示:https://jsfiddle.net/lmgonzalves/6ppo0xp3/

答案 2 :(得分:0)

试试这个:

$('.data td:nth-child(3n)').text('foo');

这会将td内的每个第3 .data个文字更改为foo。这是一个演示:http://jsbin.com/katuwumeyu/1/edit?html,js,output

如果有帮助,请告诉我,我很乐意调整我的答案,以防这不是你需要的。

答案 3 :(得分:0)

您可以使用jquery “:eq(2)”跟踪第3个td位置,如下所示:

var el = $('table.data tbody tr td:eq(2)');
el.text(el.text().replace('123456789123','12345678*12*'));

https://jsfiddle.net/v25gu3xk/

或者您可能需要替换char位置:

var el = $('table.data tbody tr td:eq(2)');
var vl = el.text().trim();
el.text(vl.substr(0, 8) + '*' + vl.substr(9, 2) + '*');

https://jsfiddle.net/v25gu3xk/1/