1

我有这个 HTML 块:

<div class='translate' id='community_participation'>
Supported by
<span class='notranslate'>
52
</span>
customers like
you, as well as
<a href="/gsfnmichelle/people">the <span class='notranslate'>GSFNMICHELLE</span> team</a>.
</div>

我知道我可以改变整个事情$('#community_participation.translate').html('Something here.');

但我不知道如何更改跨度之间的文本,即“Supported by”、“customers like you, as well as”、“the”和“team”。

4

5 回答 5

1

我建议您使用 jQuery contents()来获取文本节点并将其包装在新元素中以便于管理:

var el = $('.translate').contents().filter(function() {
             return this.nodeType == Node.TEXT_NODE;
         }).eq(0).wrap('<span class="newDiv"></span>');

然后您可以使用text()更改文本:

$('span.newDiv').text('New Text');

小提琴

于 2013-04-22T15:56:16.767 回答
1

这个怎么样?

num_customers = jQuery('#community_participation').text().split('\n')[3];

jQuery('#community_participation').html('Supported by ' + num_customers + ' community members, as well as <a href=/teded/people>the GSFNMICHELLE team</a>');

欢呼!

于 2013-04-22T16:11:08.463 回答
1

例如,要更改文本“Supported by”,您可以查看标记中的第一个 textNode(使用索引 0)

$(function() {
    $('#community_participation').contents().filter(function() {
        return this.nodeType == 3;
    })[0].textContent = "Support comes from";
});

输出:
支持来自和你一样的 52 个人,以及 GSFNMICHELLE 团队。

于 2013-04-22T16:02:35.870 回答
0

如果您不能将要更改的部分包装在跨度中,那么您可能只使用替换。例子:

$('a.question-hyperlink').html($('a.question-hyperlink').html().replace('Changing','Something else'))
于 2013-04-22T15:48:24.480 回答
0

You can use

$('.notranslate').html('your text');
于 2013-04-22T15:40:42.667 回答