Ahm*_*med 1 html jquery replace
我有以下html格式
<tr>
<td width="80%" style="padding-bottom: 3px" class="ms-vb">
<span class="ms-announcementtitle">
title is here 1
</span>
<br>
by Ahmed 1
</td>
</tr>
<tr>
<td width="80%" style="padding-bottom: 3px" class="ms-vb">
<span class="ms-announcementtitle">
title is here 2
</span>
<br>
by Ahmed 2
</td>
</tr>
<tr>
<td width="80%" style="padding-bottom: 3px" class="ms-vb">
<span class="ms-announcementtitle">
title is here 3
</span>
<br>
by Ahmed 3
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
我想<br>在"由管理员创建" 之后替换文本by Ahmed 1 --> Created by Admin,等等......
而不是操纵父对象的HTML并导致大部分表被重新分析,您可以直接使用此代码查找并替换该文本,该代码是jQuery和普通javascript的组合:
$(".ms-announcementtitle").each(function() {
$(this).nextAll("br").get(0).nextSibling.nodeValue = "Created By Admin";
});
Run Code Online (Sandbox Code Playgroud)
这会找到spans class="ms-announcementtitle",然后找到<br>它后面的标记,然后获取该节点的DOM节点并获取nextSibling,它将成为文本节点,最后直接更改它的文本.
你可以在这里看到它的工作:http://jsfiddle.net/jfriend00/z5zVT/.
jQuery没有很多处理文本节点的函数,因为要替换的文本没有包含在它自己的容器中,最好用jQuery找到该区域,然后使用普通的javascript操作直接处理文本节点而不是修改更高级别容器的innerHTML,这会导致容器中的所有内容被重新分析.
如果您为此控制HTML,最好将所需的文本包装在a中<span class="creator">,然后您可以用更直接的方式定位该跨度的内容,如下所示:
$(".creator").text("Created by Admin");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1856 次 |
| 最近记录: |