[JS] Zamiana treści dynamicznego elementu

0

tworzę sobie dynamicznie element i przypisuje mu treść:
<code=javascript">
var _spot = document.createElement( 'span' );
_spot.appendChild( document.createTextNode( 'tresc pomiedzy span...' ) );

i teraz pytanie jak tą treść zastąpić <b><u>nie używając</u> innerHTML</b> ??
0
angel2953 napisał(a)

Usuwanie treści dynamicznego elementu

angel2953 napisał(a)

jak tą treść zastąpić

[???]

Usunac mozesz: removeChild
Jak zastapic, nie wiem, moze usunac i wstawic nowy... A czemu nie chcesz InnerHTML ??

0
desperat napisał(a)

A czemu nie chcesz InnerHTML ??

Bo w XHTML 1.0 Strict nie ma czegoś takiego jak innerHTML

0

element.replaceNode(document.createTextNode('nowy text');

albo jakoś z:

if(element.nodeType == 3) element.nodeValue = 'nowy text';

chyba że masz pewność że element to będzie tekst to nie musisz porównywać typu do 3 - 3 to jest stała określająca chyba typ tekstowego węzła, ładną nazwę const ma chyba tylko przypisaną w Netscape

element to "węzeł tekstowy" który chcesz podmienić, jakoś sobie go tam zdobądź czy przez getElementById czy przez firstChild czy jakoś

urzywać ?

0
Adamo napisał(a)

element.replaceNode(document.createTextNode('nowy text');

albo jakoś z:

if(element.nodeType == 3) element.nodeValue = 'nowy text';

chyba że masz pewność że element to będzie tekst to nie musisz porównywać typu do 3 - 3 to jest stała określająca chyba typ tekstowego węzła, ładną nazwę const ma chyba tylko przypisaną w Netscape

element to "węzeł tekstowy" który chcesz podmienić, jakoś sobie go tam zdobądź czy przez getElementById czy przez firstChild czy jakoś

urzywać ?

jakoś to nie chce mi działać...

0
<div id="trawa">tekst pierwszy</div>
<script>
setTimeout(function(){
  document.getElementById('trawa').firstChild.nodeValue = 'drugi text';
}, 2000);
</script>

<div id="dif">&nbsp;</div>
<script>
document.getElementById('dif').appendChild(document.createTextNode('blah blah blah'));

document.getElementById('dif').lastChild.replaceNode(document.createTextNode('podmieniony tekst'));
</script>

działa mi, no to drugie to tylko na IE, ale w sumie to se wymyśliłem replaceNode bo nawet nie wiem czy takie coś jest :P

0

firstChild.nodeValue to mi zadziałało... :P Tylko czy to jest zgodne z XHTML 1.0 Strict...

0
  1. innerHTML istnieje w XHTML 1.0 Strict (nawet w XHTML 1.1 jest), ale jest niepolecane
  2. nodeValue chyba jest zgodne z XHTML. Wydaje mi się, że jest to właśnie to, co należy zgodnie z W3C DOM zastosować.

1 użytkowników online, w tym zalogowanych: 0, gości: 1