0

私は次のような構造を持っています:

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

controlsdivに影響を与えずに「テキストがここに入る」だけを置き換えるにはどうすればよいですか?

明らかに、「いくつかのテキストがここに入る」の周りに別の div を追加して、その内容を置き換えることができますが、この質問のために、私はできないと仮定します。

4

4 に答える 4

3

これは、既存の HTML を変更することなく可能です。jQuery を使用してテキスト ノードを見つけ、DOM に直接アクセスしてその値を変更するだけです。

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

.contents()については jQuery のドキュメントを、 .nodeValueについては MDN のドキュメントを参照してください。

于 2012-12-30T08:12:06.523 に答える
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>
于 2012-12-30T08:09:08.123 に答える
0

私はこのように行きます:

$(function() {
    var children = $('.comment').children();
    $('.comment').text('har').append(children);
});​
于 2012-12-30T08:09:46.883 に答える
0

jQuery を使用してcontrolsdiv を見つけ、それを DOM ノードに変換し、ネイティブ JS を使用してテキストを変更する

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

デモ: http://jsfiddle.net/tmGDW/

于 2012-12-30T08:12:30.370 に答える