我有下表
<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>
答案 0 :(得分:1)
请根据您的需要找到以下代码块,我已为您要修改其值的TD
添加了一个特定的类。
$( 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;
答案 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
});
答案 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) + '*');