วิธีรับข้อความของแท็ก div โดยใช้ javascript เท่านั้น (ไม่มี jQuery)


92

ฉันลองแล้ว แต่แสดงคำว่า "ไม่ได้กำหนด"

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

มีวิธีใดบ้างในการรับค่าโดยใช้ Javascript no jQuery Please!

คำตอบ:


162

คุณอาจจะต้องการที่จะลองแทนtextContentinnerHTML

ระบุinnerHTMLจะส่งคืนเนื้อหา DOM เป็นString"ข้อความ" ในไฟล์div. เป็นเรื่องปกติถ้าคุณรู้ว่าของคุณdivมี แต่ข้อความ แต่ไม่เหมาะสมหากใช้ทุกกรณี ในกรณีเหล่านี้คุณอาจต้องใช้textContentแทนinnerHTML

ตัวอย่างเช่นพิจารณามาร์กอัปต่อไปนี้:

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

คุณจะได้รับผลลัพธ์ดังต่อไปนี้:

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

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

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

ดู MDN สำหรับรายละเอียดเพิ่มเติม:


.textContentไม่รองรับ IE8 และต่ำกว่าซึ่งทำให้ใช้งานยาก
Blender

2
จริง. Indead, innerHTMLไม่ส่งกลับเฉพาะเนื้อหาข้อความตามที่ร้องขอในคำถาม ฉันจะใช้วิธีแก้ปัญหาตาม.textContentการตรวจจับคุณลักษณะโดยใช้ทางเลือกสำหรับ <IE9
dhar

4
แม้ว่าจะเป็นคำถามที่เก่ากว่า แต่. textContentก็เป็นคำตอบที่เหมาะสมกว่าสำหรับโลกปัจจุบัน
Donovan

สิ่งนี้ช่วยฉันได้มากขึ้น ขอบคุณมาก.
โลโก้

9

เนื่องจากtextContentไม่ได้รับการสนับสนุนใน IE8 และเก่ากว่านี่คือวิธีแก้ปัญหา:

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

innerText ทำงานใน IE


0

คุณสามารถใช้innerHTML(ข้อความจากนั้นแยกจาก HTML) innerTextหรือการใช้งาน

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

console.log(textContentWithHTMLTags, textContent);

innerHTMLและinnerTextได้รับการสนับสนุนจากเบราว์เซอร์ (ยกเว้น FireFox <44) รวมทั้งIE6


0

จริงๆแล้วคุณไม่จำเป็นต้องเรียกdocument.getElementById()ใช้ฟังก์ชันเพื่อเข้าถึงdivไฟล์.

คุณสามารถใช้สิ่งนี้objectได้โดยตรงโดยid:

text = test.textContent || test.innerText;
alert(text);
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.