Bir div etiketinin metnini yalnızca javascript kullanarak nasıl alabilirim (jQuery yok)


92

Bunu denedim ama "tanımsız" gösteriyor.

function test() {
var t = document.getElementById('superman').value;
alert(t); }

Basit Javascript kullanarak değeri elde etmenin herhangi bir yolu var mı jQuery yok Lütfen!

Yanıtlar:


162

Muhtemelen textContentbunun yerine denemek isteyeceksiniz innerHTML.

Verilen innerHTML, DOM içeriğini Stringyalnızca div. divYalnızca metin içerdiğini, ancak her kullanım durumunda uygun olmadığını biliyorsanız sorun değil. Bu durumlar için, muhtemelen textContentyerine kullanmanız gerekecekinnerHTML

Örneğin, aşağıdaki biçimlendirmeyi göz önünde bulundurarak:

<div id="test">
  Some <span class="foo">sample</span> text.
</div>

Aşağıdaki sonucu alacaksınız:

var node = document.getElementById('test'),

htmlContent = node.innerHTML,
// htmlContent = "Some <span class="foo">sample</span> text."

textContent = node.textContent;
// textContent = "Some sample text."

Daha fazla ayrıntı için MDN'ye bakın:


.textContentIE8 ve daha düşük sürümlerde desteklenmediği için kullanımı biraz zorlaştırır.
Blender

2
Doğru. Indead, innerHTMLyalnızca soruda istenen metin içeriğini döndürmez. .textContent<IE9
dhar

4
Daha eski bir soru olmasına rağmen, .textContent günümüz dünyası için daha uygun cevaptır.
Donovan

Bu bana çok daha fazla yardımcı oluyor. Çok teşekkür ederim.
LogoS

9

Çünkü textContentIE8 desteklenen ve üstü değildir, burada bir geçici çözüm:

var node = document.getElementById('test'),
var text  = node.textContent || node.innerText;
alert(text);

innerText IE'de çalışıyor.


0

Kullanabilir innerHTML(sonra HTML'den metin ayrıştırabilir) veya kullanabilirsiniz innerText.

let textContentWithHTMLTags = document.querySelector('div').innerHTML; 
let textContent = document.querySelector('div').innerText;

console.log(textContentWithHTMLTags, textContent);

innerHTMLve IE6innerText dahil tüm tarayıcılar (FireFox <44 hariç) tarafından desteklenmektedir .


0

Aslında hesabınıza document.getElementById()erişmek için işlevi aramanıza gerek yok div.

Bunu objectdoğrudan şu şekilde kullanabilirsiniz id:

text = test.textContent || test.innerText;
alert(text);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.