2009-10-08 14 views
7

Bez użycia jakichkolwiek frameworków JavaScript, jak mogę dynamicznie zmieniać tekst w obrębie elementu SPAN.JS: Jak dynamicznie wstawiać tekst do SPANU?

wiem, jak to zrobić z DIV byłoby następujące:

document.getElementById('myDiv').innerHTML = '...' 

Co to jest równoważne z tym dla elementu SPAN?

Odpowiedz

18

getElementById() zrobić dokładnie tak, jak sama nazwa wskazuje: uzyskać element z atrybutem id równa argumentu; więc jeśli masz rozpiętość o nazwie "mySpan", Twój kod powinien być:

document.getElementById('mySpan').innerHTML = '...'
3

Ta konkretna technika działa dla dowolnego elementu, chociaż zastrzeżenie dotyczące jej używania na elementach takich jak div jest taka, że ​​zastąpi ona elementy wewnętrzne, a nie tylko tekst.

Jeśli chcesz tylko zastąpić tekst można to zrobić przez:

function replaceText(el, str) { 
    el.textContent ? el.textContent = str : el.innerText = str; 
} 

replaceText(spanReference, 'blah') 
6

innerHTML będzie działać, ale może to być niebezpieczne w niektórych sytuacjach, jeśli nie wiesz, co robisz. Może wstawiać tagi HTML, a nie tylko tekst, prawdopodobnie otwierając Cię na ataki XSS itp.

Powrót, który zaproponowali niektórzy, jest lepszym pomysłem, ponieważ nie musisz się martwić o iniekcje skryptów itp.

Jeśli nie musisz obsługiwać IE8 i wcześniejszych wersji, użyj textContent bez opcji zastępczej. IE9 i późniejsze wsparcie textContent.

+0

To powinno być znacznie wyższe, ponieważ jest bardzo szczegółową odpowiedzią na ogólny problem, a nie przypadek użycia specyficzny dla PO. – krillgar

+0

Jest to trochę mylące. Mały przykład byłby jaśniejszy. – clearlight

Powiązane problemy