Tôi đã thử điều này nhưng hiển thị "không xác định".
function test() {
var t = document.getElementById('superman').value;
alert(t); }
Có cách nào để lấy giá trị bằng cách sử dụng Javascript đơn giản không có jQuery Xin vui lòng!
Câu trả lời:
Có thể bạn sẽ muốn thử textContentthay vì innerHTML.
Given innerHTMLsẽ trả về nội dung DOM dưới dạng một Stringvà không chỉ là "văn bản" trong div. Sẽ tốt nếu bạn biết rằng của bạn divchỉ chứa văn bản nhưng không phù hợp nếu mọi trường hợp sử dụng. Đối với những trường hợp này, có thể bạn sẽ phải sử dụng textContentthay vìinnerHTML
Ví dụ: xem xét đánh dấu sau:
<div id="test">
Some <span class="foo">sample</span> text.
</div>
Bạn sẽ nhận được kết quả sau:
var node = document.getElementById('test'),
htmlContent = node.innerHTML,
// htmlContent = "Some <span class="foo">sample</span> text."
textContent = node.textContent;
// textContent = "Some sample text."
Xem MDN để biết thêm chi tiết:
innerHTMLkhông chỉ trả về nội dung văn bản như được yêu cầu trong câu hỏi. Tôi sẽ triển khai một giải pháp dựa trên .textContentphát hiện tính năng với dự phòng cho <IE9
Bạn có thể sử dụng innerHTML(sau đó phân tích cú pháp văn bản từ HTML) hoặc sử dụng innerText.
let textContentWithHTMLTags = document.querySelector('div').innerHTML;
let textContent = document.querySelector('div').innerText;
console.log(textContentWithHTMLTags, textContent);
innerHTMLvà innerTextđược hỗ trợ bởi tất cả các trình duyệt (ngoại trừ FireFox <44) bao gồm cả IE6 .
Trên thực tế, bạn không cần phải gọi document.getElementById()chức năng để có quyền truy cập vào của bạn div.
Bạn có thể sử dụng điều này objecttrực tiếp bằng cách id:
text = test.textContent || test.innerText;
alert(text);
.textContentkhông được hỗ trợ trong IE8 trở xuống, điều này làm cho nó hơi khó sử dụng.