-4

このデモ コードは 3 回ループし、そのたびにテキストを追加します。私が必要とするのは、テキストが追加されるのではなく置き換えられることです。そのため、以前に追加されたテキストは、新しいテキストを追加する前に削除する必要があります。私は多くのことを試しましたが、何もうまくいきませんでした。

編集:スパンの後に余分なタグを追加することはできません!

 <div>
     <span id="i_1">this is </span>
</div>
​
var i = 3;
while(i>0)
{
     //// how to remove the text added on the previous iteration?
    $("#i_1").after('text');
    i--;
}
​

http://jsfiddle.net/pHYHW/

4

6 に答える 6

3

簡単に言えば、それがjQuery afterText プラグインの目的です。

例/デモ:

<div>
  <span id="i_1">this is </span>
</div>
​
var i = 3;
while (i)
{
    $("#i_1").afterText('text');
    i--;
}

github の jQuery afterText プラグイン

于 2012-06-21T12:46:44.717 に答える
2
var i = 3;
while ( i ) {
    $("#i_1")[ 0 ].nextSibling.nodeValue = 'text';
    i--;
}

デモ: http://jsfiddle.net/Ralt/pHYHW/7/

では、お楽しみください。data必要に応じて代わりに使用することもできnodeValueます。

ちなみに、これnextSiblingは が であるため機能するためtextNodenodeValueプロパティが使用可能です。

于 2012-06-21T12:59:42.980 に答える
0

それはjQueryではありませんが、これが私がそれを行う方法です...

var ele = document.getElementById('i_1'); // get the element
var tn = ele.nextSibling, // get it's next sibling (picks up text nodes)
    mode = 'textContent' in ele ? 'textContent' : 'innerText'; // ( ie is smelly )
for (var i = 3; i > 0; i--) {
    tn[mode] = "Text"; // change the text content. 
}

これがデモです

于 2012-06-21T13:01:57.823 に答える
0

要素の後にテキストを配置する代わりに、テキストを保持する要素を含めるように HTML を変更します。

<span id="i_1">this is </span> <span id="value"></span>

そして、他の要素のテキストを設定するだけです:

for (var i = 3; i > 0; i--) {
    $("#value").text('text');
}
于 2012-06-21T02:18:49.023 に答える
0

これは機能します:

var i = 3;
var old_text = $('#i_1').html();
while(i>0)
{
    $("#i_1").html(old_text + 'text');
    i--;
}

デモ: http://jsfiddle.net/2DcXe/ </p>

于 2012-06-21T02:20:11.300 に答える
0

これがあなたが探しているものかどうかはわかりませんが、これを試してください:

HTML

<div>
    <span id="i_1">this is </span><span id="i_2"></span>
</div>

</p>

Javascript

var i = 3;
while(i>0)
{
    $("#i_2").html('text');
    i--;
}
于 2012-06-21T02:24:52.417 に答える