用jQuery改变div中的文本

时间:2012-12-30 08:02:00

标签: javascript jquery

我有这样的结构:

<div class="comment">
    Some text goes here.
    <div class="controls">
      Controls go here.
    </div>
</div>

如何在不影响controls div?

的情况下,只更换“有些文字在这里”

显然,可以在“有些文字在这里”添加另一个div,然后替换它的内容,但为了这个问题,假设我不能。

4 个答案:

答案 0 :(得分:3)

这可以在不修改现有HTML的情况下实现。只需使用jQuery查找文本节点,然后通过直接访问DOM来更改其值。

$('.comment').contents()[0].nodeValue = 'Some other text goes here.';

请参阅.contents()的jQuery文档和.nodeValue的MDN文档。

答案 1 :(得分:0)

而不是文本周围的“div”,也许是一个跨度所以它是内联的。或者使用:

<div class="comment">
    Some text goes here.
    <div class="controls">
      Controls go here.
    </div>
</div>
<script>
    var c = $('.comment').eq(0);
    c.html(c.html().replace('Some text goes here', 'Blah blah blah'));
</script>

答案 2 :(得分:0)

我会这样:

$(function() {
    var children = $('.comment').children();
    $('.comment').text('har').append(children);
});​

答案 3 :(得分:0)

使用jQuery定位controls div,然后将其转换为DOM节点并使用本机JS更改文本

var textNode=$('.comment').find('.controls')[0].previousSibling
    textNode.nodeValue='New Text From Script'

DEMO:http://jsfiddle.net/tmGDW/