Mengapa berikut ini tidak berhasil untuk saya?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
javascript
html
label
innerhtml
phil crowe
sumber
sumber
Jawaban:
Karena skrip Anda berjalan SEBELUM label ada di halaman (di DOM). Letakkan skrip setelah label, atau tunggu hingga dokumen dimuat sepenuhnya (gunakan fungsi OnLoad, seperti
jQuery ready()
atau http://www.webreference.com/programming/javascript/onloads/ )Ini tidak akan berhasil:
<script> document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!'; </script> <label id="lbltipAddedComment">test</label>
Ini akan berhasil:
<label id="lbltipAddedComment">test</label> <script> document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!'; </script>
Contoh ini (jsfiddle link) mempertahankan urutan (skrip dulu, lalu label) dan menggunakan 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>
sumber
Sudahkah Anda mencoba
.innerText
atau.value
bukannya.innerHTML
?sumber
.value
forlabel
.text('Your Text')
Karena elemen label tidak dimuat saat skrip dijalankan. Tukar label dan elemen skrip, dan itu akan berfungsi:
<label id="lbltipAddedComment"></label> <script> document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!'; </script>
sumber
Menggunakan
.innerText
harus bekerja.document.getElementById('lbltipAddedComment').innerText = 'your tip has been submitted!';
sumber
Gunakan
.textContent
sebagai gantinya.Saya juga berjuang untuk mengubah nilai label, sampai saya mencobanya.
Jika ini tidak menyelesaikan, coba periksa objek untuk melihat properti apa yang dapat Anda setel dengan memasukkannya ke konsol
console.dir
seperti yang ditunjukkan pada pertanyaan ini: Bagaimana cara membuat log elemen HTML sebagai objek JavaScript?sumber
"enter info here:"
bagian dari berikut:<label id='myLabel'>enter info here:<input type='text' id='inp'/></label>
. Hanya.textContent
bekerja, dan tidak ada.innerHTML
,.innerText
atau.value
berhasil. (Penafian: Saya hanya memeriksa di Chrome.).textContent
dan.innerText
(meskipun baik-baik saja untuk membaca), tidak berfungsi untuk firefox60 saya untuk menulis (itu juga menghapus bidang input yang disematkan, sama seperti.innerHTML
). Jadi saya harus menggunakandocument.getElementById('myLabel').childNodes[0].nodeValue="new label text"
(tentu saja, indeks mungkin sesuatu yang lain dari 0, yang membuat sedikit kludgy tapi berhasil untuk saya)Berikut cara lain untuk mengubah teks label menggunakan jQuery:
<script> $("#lbltipAddedComment").text("your tip has been submitted!"); </script>
Periksa contoh JsFiddle
sumber
Coba ini:
<label id="lbltipAddedComment"></label> <script type="text/javascript"> document.getElementById('<%= lbltipAddedComment.ClientID %>').innerHTML = 'your tip has been submitted!'; </script>
sumber
Karena skrip akan dieksekusi lebih dulu .. Saat skrip akan dijalankan, pada saat itu kontrol tidak dimuat. Jadi setelah memuat kontrol Anda menulis skrip.
Ini akan berhasil.
sumber