다음이 저에게 효과가없는 이유는 무엇입니까?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
다음이 저에게 효과가없는 이유는 무엇입니까?
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
<label id="lbltipAddedComment"></label>
답변:
레이블이 페이지 (DOM)에 존재하기 전에 스크립트가 실행되기 때문입니다. 레이블 뒤에 스크립트를 넣거나 문서가 완전히로드 될 때까지 기다리십시오 ( jQuery ready()
또는 http://www.webreference.com/programming/javascript/onloads/ 와 같은 OnLoad 기능 사용 ).
작동하지 않습니다.
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!';
</script>
<label id="lbltipAddedComment">test</label>
이것은 작동합니다.
<label id="lbltipAddedComment">test</label>
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'your tip has been submitted!';
</script>
이 예제 (jsfiddle 링크) 는 순서 (스크립트 먼저, 그다음 레이블)를 유지하고 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>
스크립트가 실행될 때 레이블 요소가로드되지 않기 때문입니다. 레이블과 스크립트 요소를 바꾸면 작동합니다.
<label id="lbltipAddedComment"></label>
<script>
document.getElementById('lbltipAddedComment').innerHTML = 'Your tip has been submitted!';
</script>
.textContent
대신 사용하십시오 .
나는 이것을 시도하기 전까지 레이블의 가치를 바꾸는 데 어려움을 겪고 있었다.
그래도 해결되지 않으면 console.dir
이 질문에 표시된대로 콘솔에 로깅하여 설정할 수있는 속성을 확인하기 위해 개체를 검사 해보십시오 . HTML 요소를 JavaScript 개체로 로깅하려면 어떻게해야합니까?
"enter info here:"
일부를 변경하십시오 <label id='myLabel'>enter info here:<input type='text' id='inp'/></label>
.. 만 .textContent
일하지, 그리고 아무도 .innerHTML
, .innerText
또는 .value
했다. (면책 조항 : 저는 Chrome에서만 확인했습니다.)
.textContent
과 .innerText
(미세 읽는 동안), (그것은 또한처럼, 내장 된 입력 필드를 지워 쓰기에 대한 내 firefox60에 대한 작업은하지 않았다 .innerHTML
). 내가 할 수 밖에 없었습니다 그래서 document.getElementById('myLabel').childNodes[0].nodeValue="new label text"
(물론, 지수는 약간의 미봉책이 만드는 다른 무엇인가 후 0이 될 수도 있지만 나를 위해 그것을 일)
다음은 jQuery를 사용하여 레이블의 텍스트를 변경하는 또 다른 방법입니다.
<script>
$("#lbltipAddedComment").text("your tip has been submitted!");
</script>
JsFiddle 예제 확인
이 시도:
<label id="lbltipAddedComment"></label>
<script type="text/javascript">
document.getElementById('<%= lbltipAddedComment.ClientID %>').innerHTML = 'your tip has been submitted!';
</script>