这与我向Jquery提出的上一个问题有关。如果我在整个网页中有多个表格,如下所示。是否可以在编辑后找到名称:并将其替换为其他内容。名称将始终不同,并替换为“anon”。我一直在使用的建议示例来自我之前的问题,但是在那里我知道我的div的类和ID,我将如何处理表元素中的内容?
非常感谢
<script type="text/javascript">
$(document).ready(function() {
$('div.blogEntries div.entry span').remove();
$('.entryFooter').each(function() {
var html_arr = $(this).html().split(' ');
html_arr[2] = 'anonymous';
$(this).html(html_arr.join(' '));
});
});
</script>
<table border="0">
<tbody style="border-radius: 8px 8px 8px 8px;">
<tr>
<td>
An example post
<br>
Edited by: joe at 03/11/2011 14:09
<br>
<br>
</td>
</tr>
</tbody>
</table>
答案 0 :(得分:2)
您可以使用正则表达式替换html:
var replacementRegexp = /(.*Edited by:\s+)(.+)(\s+at.*)/m;
$("table td:contains('Edited by')").each(
function(index, element) {
$(element).html($(element).html().replace(replacementRegexp, '$1anon$3'));
});
答案 1 :(得分:1)
我认为你想要一个正则表达式。这是Yuriy答案的替代方案:
var regex = /Edited by: ([\w]*)? at/g;
var tables = document.getElementsByTagName("table");
for (var i=0; i<tables.length; i++){
var str = tables[i].innerHTML;
console.log(str);
str = str.replace(regex, "Edited by: anon at");
tables[i].innerHTML = str;
}
答案 2 :(得分:0)
您需要更多HTML元素:
<span class="editedby">Edited by: <strong>joe</strong> at <em>03/11/2011 14:09<em><span>
$('span.editedby strong').each( function () {
$(this).text('anon');
} );
答案 3 :(得分:0)
如何循环遍历表的子项并在文本中搜索字符串“Edited by:”。我不能想到手的代码,但是像:
$("#yourTableBody").children().each(function(){
if( $(this).text().search("Edited by") > -1 )
{
//edit the string here
}
});