Tại sao những điều sau đây không hiệu quả với tôi?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
Tại sao những điều sau đây không hiệu quả với tôi?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
Câu trả lời:
Bởi vì tập lệnh của bạn chạy TRƯỚC khi nhãn tồn tại trên trang (trong DOM). Đặt tập lệnh sau nhãn hoặc đợi cho đến khi tài liệu được tải đầy đủ (sử dụng hàm OnLoad, chẳng hạn như jQuery ready()
hoặc http://www.webreference.com/programming/javascript/onloads/ )
Điều này sẽ không hoạt động:
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!';
</script>
<label id="lbltipAddedComment">test</label>
Điều này sẽ hoạt động:
<label id="lbltipAddedComment">test</label>
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!';
</script>
Ví dụ này (liên kết jsfiddle) duy trì thứ tự (script trước, sau đó đến nhãn) và sử dụng onLoad:
<label id="lbltipAddedComment">test</label>
<script>
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
addLoadEvent(function() {
document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!';
});
</script>
Bạn đã thử .innerText
hoặc .value
thay vì .innerHTML
?
.value
cholabel
.text('Your Text')
Bởi vì một phần tử nhãn không được tải khi một tập lệnh được thực thi. Hoán đổi các phần tử nhãn và tập lệnh, và nó sẽ hoạt động:
<label id="lbltipAddedComment"></label>
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
Sử dụng .textContent
thay thế.
Tôi cũng đang vật lộn với việc thay đổi giá trị của một nhãn cho đến khi tôi thử điều này.
Nếu điều này không giải quyết được, hãy thử kiểm tra đối tượng để xem bạn có thể đặt thuộc tính nào bằng cách đăng nhập nó vào bảng điều khiển với console.dir
như được hiển thị trong câu hỏi này: Làm cách nào để ghi nhật ký một phần tử HTML dưới dạng một đối tượng JavaScript?
"enter info here:"
một phần của những điều sau đây: <label id='myLabel'>enter info here:<input type='text' id='inp'/></label>
. Chỉ .textContent
hoạt động, và không có .innerHTML
, .innerText
hoặc .value
hoạt động. (Disclaimer: Tôi chỉ kiểm tra trong Chrome.)
.textContent
và .innerText
(mặc dù đọc tốt), không hoạt động cho firefox60 của tôi để viết (nó cũng xóa trường đầu vào được nhúng, giống như .innerHTML
). Vì vậy, tôi đã phải dùng đến document.getElementById('myLabel').childNodes[0].nodeValue="new label text"
(tất nhiên, chỉ số có thể là một cái gì đó khác rồi 0, mà làm là một kludgy ít nhưng làm việc đó cho tôi)
Đây là một cách khác để thay đổi văn bản của nhãn bằng jQuery:
<script>
$("#lbltipAddedComment").text("your tip has been submitted!");
</script>
Kiểm tra ví dụ JsFiddle
Thử đi:
<label id="lbltipAddedComment"></label>
<script type="text/javascript">
document.getElementById('<%= lbltipAddedComment.ClientID %>').innerHTML = 'your tip has been submitted!';
</script>