div.innerHTML почему не работает в верху
Здравствуйте! почему код так работает:
<div id="div">777</div> <script> div.innerHTML = '<p>0000000</p>'; </script>:write: а:help: :blink: так не работает, 100 раз проверял <script> div.innerHTML = '<p>0000000</p>'; </script> <div id="div">777</div> 2) как document.write("22222222") передать значение в DIV :( может^
ddd.document.write("222222")
<div id=ddd></div>
может кто подсказать? Спасибо! |
Потому что html формат разработан для работы по сети и рисования сайта сразу по мере получения информации. Т.е. на медленном интернете во втором случае возможна ситуация, когда script - загрузился, а div ещё течёт по проводам. По этому разбор html документа всегда идёт строго по порядку: на момент запуска твоего script - твоего div не существует, и script, соответственно, ничего о нём не знает.
Либо всегда помещай script вниз, либо жди загрузки кода страницы:
window.addEventListener('DOMContentLoaded', function(){
// твой код
});
либо загрузки всей страницы вместе с картинками, видео и прочим содержимым:
window.addEventListener('load', function(){
// твой код
});
Про document.write забудь. По крайней мере пока не станешь senior.) |
JavaScript в супер стайтах
Да, я сделал так:
<SCRIPT language=JavaScript>
<!--
document.write("<font color=#ffffff size=-2>")
now = new Date()
if (now.getDay() == 0) document.write("пн")
if (now.getDay() == 1) document.write("вт")
if (now.getDay() == 2) document.write("ср")
if (now.getDay() == 3) document.write("чт")
if (now.getDay() == 4) document.write("пт")
//-->
</SCRIPT>
а этот валидатор ругаеться :cray: :-E :-E :-E поэтому пришлось так::write: now = new Date() if (now.getDay() == 0) div.innerHTML = '<p>пн</p>'; if (now.getDay() == 1) div.innerHTML = '<p>вт</p>'; if (now.getDay() == 2) div.innerHTML = '<p>ср</p>'; if (now.getDay() == 3) div.innerHTML = '<p>чт</p>'; if (now.getDay() == 4) div.innerHTML = '<p>пт</p>'; if (now.getDay() == 5) div.innerHTML = '<p>сб</p>'; if (now.getDay() == 6) div.innerHTML = '<p>вс</p>'; и через DIV вывожу на страничку:victory: Но: я понимаю что это криво :-E , то скрипт в низу т.к. вверху не работает. а в теории то должно быть так: <html><head><script src="js/week.js"></script></head> <body> <div id="div">777</div> </body> </html> Но так ни фига не работает :-E :nono: Где справедливость? |
прокатило работает
РАБОТАЕТ: :thanks:
window.addEventListener('DOMContentLoaded', function(){
now = new Date()
if (now.getDay() == 0)
div.innerHTML = '<p>0000000</p>';
if (now.getDay() == 1)
div.innerHTML = '<p>11111111fff2</p>';
});
а с
document.write("пн")
тоже также? :help: ну тока:
window.addEventListener('DOMContentLoaded', function('super1'){
function('super1'):thanks: |
Цитата:
window.addEventListener('DOMContentLoaded', function()
{
const day = (new Date()).getDay();
let html = '<p>0000000</p>';
if (day == 1) html = '<p>11111111fff2</p>';
if (!day || day == 1) div.innerHTML = html;
}
);
|
Цитата:
Тебе описали выше алгоритм обработки контента браузером. Так оно и работает. Ты еще пожалуйся что у машин несколько скоростей вперед и только одна назад. Где же СПРАВЕДЛИВОСТЬ? :-E |
Цитата:
<!DOCTYPE html>
<html>
<head>
<!--
<script src='https://code.jquery.com/jquery-latest.min.js'></script>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
<script src='tmp.js'></script>
-->
<style>
</style>
<script>
window.addEventListener('DOMContentLoaded', _ => {
const a = ['пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс']
let val = now = new Date()
val = val.getDay()
div.innerHTML = '<p>' + a[val] + '</p>';
})
</script>
</head>
<body>
<p id='div'></p>
</body>
</html>
|
дак суперкод-> чтобы понятно было :-?
Спасибо! :dance: |
вопрос - как отоброжать содержимое фалов
а можно еще вопрос? :help:
function get_file(url, callback)
{
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET", url, true);
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
callback(xmlhttp.responseText);
}
}
xmlhttp.send();
}
window.addEventListener('DOMContentLoaded', function()
{
const day = (new Date()).getDay();
let html = '<p>INFORMATION</p>';
if (day == 1) html = '1.dat';
if (day == 2) html = '2.dat';
if (day == 3) html = '3.dat';
if (day == 4) html = '4.dat';
if (day == 5) html = '5.dat';
if (day == 6) html = '6.dat';
if (day == 7) html = '7.dat';
if (!day || day == 1) info.innerHTML = html;
if (!day || day == 2) info.innerHTML = html;
if (!day || day == 3) info.innerHTML = html;
if (!day || day == 4) info.innerHTML = html;
if (!day || day == 5) info.innerHTML = html;
if (!day || day == 6) info.innerHTML = html;
if (!day || day == 7) info.innerHTML = html;
}
);
get_file(html, function(response)
{
document.getElementById("output").innerHTML=response;
});
в общем вот :blink: не работает |
проверте на ошибки
в общем у меня стоит нотепад :blink:
как тока я сюда код закидываю вижу что можно подправить, а вноте пад как сляпой КРОТ:-? вот что вышло:
function get_file(url, callback)
{
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET", url, true);
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
callback(xmlhttp.responseText);
}
}
xmlhttp.send();
}
const day = (new Date()).getDay();
let html = '<p>INFORMATION</p>';
if (day == 1) html = '1.dat';
if (day == 2) html = '2.dat';
if (day == 3) html = '3.dat';
if (day == 4) html = '4.dat';
if (day == 5) html = '5.dat';
if (day == 6) html = '6.dat';
if (day == 7) html = '7.dat';
get_file(html, function(response)
{
document.getElementById("output").innerHTML=response;
});
так правильно??? |
| Часовой пояс GMT +3, время: 15:48. |