首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在粗体标记后更改文本?

如何在粗体标记后更改文本?
EN

Stack Overflow用户
提问于 2014-08-13 13:36:08
回答 6查看 968关注 0票数 0

我很难将两个实例的“跑步者”改为“队长”

代码语言:javascript
复制
<form id="thisForm">
    <table>
        <tr bgcolor="#eeeeee">
            <td valign="top" colspan="4" style="vertical-align: top;">
                <input type="radio" onclick="javascript:teamAction('form')" value="none" name="teamAct">
                &nbsp;<b>Become</b> a Runner
            </td>
        </tr>
        <tr bgcolor="#eeeeee">
            <td valign="top" colspan="4" style="vertical-align: top;">
                <input type="radio" onclick="javascript:teamAction('form')" value="none" name="teamAct">
                &nbsp;<b>Support</b> a Runner
            </td>
        </tr>
    </table>
</form>

我能够使用以下方法更改第一个实例:

代码语言:javascript
复制
document.getElementById("thisForm").innerHTML = document.getElementById("thisForm").innerHTML.replace(" a Runner", " a Team Captain");

请参阅jsfiddle:http://jsfiddle.net/jelane20/voxnmwpn/

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-08-13 13:41:48

使用全局开关(replace(/ a Runner/g," a Team Captain"))替换:

代码语言:javascript
复制
document.getElementById("thisForm").innerHTML=document.getElementById("thisForm").innerHTML.replace(/ a Runner/g," a Team Captain");

jsFiddle实例

票数 2
EN

Stack Overflow用户

发布于 2014-08-13 13:42:12

您的代码只是替换第一次出现的代码。您可以将其转换为regex并使用全局匹配g参数:

代码语言:javascript
复制
document.getElementById("thisForm").innerHTML = document.getElementById("thisForm").innerHTML.replace(/a Runner/g, " a Team Captain");

更新小提琴

如果您想要一个jQuery实现,可以通过直接更改textNodes来避免对整个表的textNodes进行处理。试试这个:

代码语言:javascript
复制
$('#thisForm td').each(function() {
    var contents = $(this).contents().filter(function() {
        return this.nodeType == 3;
    });
    contents[contents.length -1].nodeValue = " a Team Captain";
});

例琴

票数 0
EN

Stack Overflow用户

发布于 2014-08-13 13:42:29

只需将搜索模式更改为带有全局(/g)标志的正则表达式对象:

代码语言:javascript
复制
$('#thisForm').html(function(i, html) {
    return html.replace(/a Runner/g," a Team Captain");
});

演示

这也可以很容易地扩展到对每一行进行操作,允许首先应用过滤器:

代码语言:javascript
复制
$('#thisForm tr').html(function(i, html) {
    return html.replace(/a Runner/g," a Team Captain");
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25287676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档