0

スパンテキスト以外のテキストデータを変更するにはどうすればよいですか?

<h2 id="nameUser" >Muhammed <span> mobile :989 531 9991</span></h2>

h2スパン以外に変更する解決策はありますか?

4

7 に答える 7

4

.contents()テキストノードを含むノードのコレクションを返します。したがって、あなたの場合、これは機能します:

$('#nameUser').contents()​​​​​​​​[0].nodeValue = 'Another name';​​

SPAN 以外のすべてのノードを取得する場合は、次を試してください。

$('#nameUser').contents().filter(function() {
    return this.nodeName != 'SPAN';
}).​each(function(i) {
    // modify each text node
    this.nodeValue = 'name '+i;
});​​​​​

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

于 2012-11-07T14:24:00.167 に答える
2

h2 要素の childNodes で最初の textnode を検索します。テキストノードの値を変更します。

var element = document.getElementById('nameUser');
element.childNodes[0].nodeValue = 'New String';

..動作するはずです。この例に限り、最初の子ノードは必要なテキスト ノードであるため、検索する必要はありません。そうでなければあなたは..

于 2012-11-07T14:21:19.897 に答える
1

この例は、子要素を変更せずに親要素を変更するのに役立ちます:

var content= $('#nameUser').children();
$('#nameUser').text('Altered Text').append(content);​
于 2012-11-07T14:23:39.147 に答える
1

最初に子を保存することでそれを行うことができます。これは、それが機能するコードペンです。

http://codepen.io/beckje01/pen/sGLot

var h2 = $('#nameUser');
var elmsToSave = h2.children();

h2.empty();
h2.text('bob');
h2.append(elmsToSave);

コメントで指摘されているように、これは変更するテキストが最初の場合にのみ機能します。

于 2012-11-07T14:30:55.753 に答える
1
$('#nameUser').contents().each(function() {
    if (this.nodeType == 3) 
        this.data = "The text you want here";
});​

ライブデモ

于 2012-11-07T14:19:09.163 に答える
0

これはspan、子のテキストなしでテキストが必要な他の要素に対してだけでなく、他の要素に対しても機能します。

$("#nameUser")
    .clone()   
    .children()
    .remove()  
    .end()  
    .text();

テキストを変更するために、単純な jQuery 関数を作成しました。

replaceTextWith = function($element, $replacement){
    $oldText = $element.clone().children().remove().end().text();
    $element.text($element.text().replace($oldText, $replacement));
}

replaceTextWith($("#nameUser"), "Bruno"); //usage

フィドルで動作する実際の例を次に示します

于 2012-11-07T14:21:01.230 に答える
0

これを試して ...

<h2 id="nameUser" >Muhammed <span id="nameUserSpan"> mobile :989 531 9991</span></h2>

<script>
$(document).ready(function() {
    var inspan= $("#nameUserSpan").html();
    var newuser='New User';
    $("#nameUser").html('');
    $("#nameUser").html(newuser + '<span id="nameUserSpan">' + inspan + '</span>');
});
</script>
于 2012-11-07T14:29:55.563 に答える