ฉันลองแล้ว แต่แสดงคำว่า "ไม่ได้กำหนด"
function test() {
var t = document.getElementById('superman').value;
alert(t); }
มีวิธีใดบ้างในการรับค่าโดยใช้ Javascript no jQuery Please!
ฉันลองแล้ว แต่แสดงคำว่า "ไม่ได้กำหนด"
function test() {
var t = document.getElementById('superman').value;
alert(t); }
มีวิธีใดบ้างในการรับค่าโดยใช้ Javascript no jQuery Please!
คำตอบ:
คุณอาจจะต้องการที่จะลองแทน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 สำหรับรายละเอียดเพิ่มเติม:
innerHTMLไม่ส่งกลับเฉพาะเนื้อหาข้อความตามที่ร้องขอในคำถาม ฉันจะใช้วิธีแก้ปัญหาตาม.textContentการตรวจจับคุณลักษณะโดยใช้ทางเลือกสำหรับ <IE9
เนื่องจากtextContentไม่ได้รับการสนับสนุนใน IE8 และเก่ากว่านี่คือวิธีแก้ปัญหา:
var node = document.getElementById('test'),
var text = node.textContent || node.innerText;
alert(text);
innerText ทำงานใน IE
คุณสามารถใช้innerHTML(ข้อความจากนั้นแยกจาก HTML) innerTextหรือการใช้งาน
let textContentWithHTMLTags = document.querySelector('div').innerHTML;
let textContent = document.querySelector('div').innerText;
console.log(textContentWithHTMLTags, textContent);
innerHTMLและinnerTextได้รับการสนับสนุนจากเบราว์เซอร์ (ยกเว้น FireFox <44) รวมทั้งIE6
จริงๆแล้วคุณไม่จำเป็นต้องเรียกdocument.getElementById()ใช้ฟังก์ชันเพื่อเข้าถึงdivไฟล์.
คุณสามารถใช้สิ่งนี้objectได้โดยตรงโดยid:
text = test.textContent || test.innerText;
alert(text);
.textContentไม่รองรับ IE8 และต่ำกว่าซึ่งทำให้ใช้งานยาก