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 .innerTextveya .valueyerine .innerHTML?
.valueiç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>
.textContentBunun 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, .innerTextya da .valueçalıştı. (Feragatname: Yalnızca Chrome'da kontrol ettim.)
.textContentve .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>