Aşağıdakiler neden benim için çalışmıyor?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
Aşağıdakiler neden benim için çalışmıyor?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
Yanıtlar:
Komut dosyanız etiket sayfada (DOM'da) varolmadan ÖNCE çalıştığı için. Komut dosyasını etiketin arkasına koyun veya belge tamamen yüklenene kadar bekleyin ( jQuery ready()
veya http://www.webreference.com/programming/javascript/onloads/ gibi bir Yüklemede işlevi kullanın )
Bu işe yaramaz:
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!';
</script>
<label id="lbltipAddedComment">test</label>
Bu çalışacak:
<label id="lbltipAddedComment">test</label>
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!';
</script>
Bu örnek (jsfiddle link) sırayı korur (önce komut dosyası, ardından etiket) ve bir onLoad kullanır:
<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>
Eğer denediniz .innerText
veya .value
yerine .innerHTML
?
.value
içinlabel
.text('Your Text')
Çünkü bir betik yürütüldüğünde bir etiket öğesi yüklenmez. Etiket ve komut dosyası öğelerini değiştirin, işe yarayacaktır:
<label id="lbltipAddedComment"></label>
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
.textContent
Bunun yerine kullanın .
Ben de bunu deneyene kadar bir etiketin değerini değiştirmekle uğraşıyordum.
Bu çözülmezse console.dir
, bu soruda gösterildiği gibi konsola günlüğe kaydederek hangi özellikleri ayarlayabileceğinizi görmek için nesneyi incelemeyi deneyin : Bir HTML öğesini JavaScript nesnesi olarak nasıl günlüğe kaydedebilirim?
"enter info here:"
aşağıdakilerden bölümünü: <label id='myLabel'>enter info here:<input type='text' id='inp'/></label>
. Sadece .textContent
çalıştı ve hiçbiri .innerHTML
, .innerText
ya da .value
çalıştı. (Feragatname: Yalnızca Chrome'da kontrol ettim.)
.textContent
ve .innerText
(okumak için iyi olsa da), firefox60'ım için yazı yazmak için çalışmadı (aynı zamanda gömülü giriş alanını da sildi .innerHTML
). Bu yüzden başvurmak zorunda kaldım document.getElementById('myLabel').childNodes[0].nodeValue="new label text"
(elbette, endeks 0'dan başka bir şey olabilir, bu biraz garip ama benim için çalıştı)
JQuery kullanarak bir etiketin metnini değiştirmenin başka bir yolu:
<script>
$("#lbltipAddedComment").text("your tip has been submitted!");
</script>
JsFiddle örneğini kontrol edin
Bunu dene:
<label id="lbltipAddedComment"></label>
<script type="text/javascript">
document.getElementById('<%= lbltipAddedComment.ClientID %>').innerHTML = 'your tip has been submitted!';
</script>