5

私は以下のhtmlを持っています。私がやりたいことは、いくつかの条件によって異なります。であるテキストを変更し続けたいSometitle

<div id="header">
    Sometitle
    <div>
        <div>
            aa
        </div>
        <div>
            bb
        </div>
    </div>
</div>

以下の Jquery を使用してみましたが、他の div も削除されます。

$("#header").text("Its a thrusday today !");

どうすればこれを完了できますか? いずれにせよ、この HTML を変更することはできません。jquery を使用して、これを実行するだけです。

ここに私が作成した jsfiddle があります: http://jsfiddle.net/qYUBp/

4

5 に答える 5

3

そのテキストSometitleは孤立したノードです。要素をラップして適切に操作する必要があります

<div id="header">
    <span>Sometitle</span>
    <div>
        <div>
            aa
        </div>
        <div>
            bb
        </div>
    </div>
</div>

編集

しかし、残念ながら html を変更することはできないため、別の投稿で解決策が示唆されているように行うことができます。ここで修正したタイプミスがありました。

var your_div = document.getElementById('header');
var text_to_change = your_div.childNodes[0];
text_to_change.nodeValue = 'new text';

更新された JsFiddleを確認してください

于 2013-03-07T06:07:53.917 に答える
3

1行にまとめたくない場合。

var tmp=$("#header>div").html();
$("#header").text("its thursday").append('<div>'+tmp+'</div>');

jsfiddle

于 2013-03-07T06:20:53.427 に答える
0

この場合のみ、ブラウザへのレンダリング時

var new_s = "Its a thrusday today !";
var s = $("#header").children(":first").html();
$("#header").text(new_s+"<div>"+s+"</div>");
于 2013-03-07T06:25:40.543 に答える
0

これを試して

$("#header").html($("#header").html().replace("Sometitle","Its a thrusday today !"));
于 2013-03-07T06:09:15.483 に答える
0

これを確認できますか

headerClone = $("#header").clone();
$(headerClone).find('div').remove();
var currentText = $(headerClone).html().replace(/(\r\n|\n|\r|\t)/gm,"");

newHtml = $("#header").html().replace(currentText,"Gotcha");
$("#header").html(newHtml);

JSFIDDLE

于 2013-03-07T06:49:39.373 に答える