#javascript
#javascript
Вопрос:
эй, ребята, я зашел так далеко с системой чата, но теперь я застрял на этом этапе.
скрипт js будет искать элемент с именем chat, и если он не найден, он добавит его ко всем другим элементам, указанным здесь
<div class='chat' id='chat'><div class='ch' id='ch'><h2>Chat</h2></div><div class='chatbox'><div class='messages'></div><textarea id='message' class='chatinp' rows='3' cols='27'></textarea><button class='send'>Send</button></div></div>
Моя проблема в том, как вставить всю эту строку кода с помощью javascript в html-документ.
как бы вы это сделали?
Мой javascript-скрипт, который вам нужно увидеть
<script type="text/javascript">
var num = new Number();
num = 0
function chat(){
if(!document.getElementById("chat")){
document.write("<div class='chat' id='chat'><div class='ch' id='ch'><h2>Chat</h2></div><div class='chatbox'><div class='messages'></div><textarea id='message' class='chatinp' rows='3' cols='27'></textarea><button class='send'>Send</button></div></div>")
}
else
{
var obj = document.getElementById("chat").cloneNode(true);
var p = $(".chat");
var offset = p.offset();
num = num 1;
if (num <15) {
obj.id = obj.id num;
document.getElementById("ch").id = obj.id;
document.body.appendChild(obj);
document.getElementById("chat").style.left = "700px";
}
}
}
</script>
Комментарии:
1. Я настоятельно рекомендую использовать библиотеку js, такую как jQuery , для такого рода вещей.
2. я бы хотел, но я тоже хочу немного больше изучить javascript без библиотеки js.
3. Я думаю, вам нужно больше объяснить, что вы пытаетесь сделать.
Ответ №1:
Не используйте document.write
(это перезапишет все в вашем документе), но создавайте div#chat
динамически, что-то вроде:
if(!document.getElementById("chat")){
var chatdiv = document.createElement('div');
chatdiv.id = 'chat';
chatdiv.className = 'chat';
chatdiv.innerHTML =
['<div class="ch" id="ch">',
'<h2>Chat</h2></div>',
'<div class="chatbox">',
'<div class="messages"></div>',
'<textarea id="message" class="chatinp" ',
'rows="3" cols="27"></textarea>',
'<button class="send">Send</button></div>'
].join(' ')
document.body.appendChild(chatdiv);
}
[Редактировать 2022] Более современный подход может быть:
document.querySelector(`#chat`) || (_ =>
document.body.insertAdjacentHTML(
`beforeend`, `
<div id="chat">
<div class="ch" id="ch">
<h2>Chat</h2>
</div>
<div class="chatbox">
<div class="messages"></div>
<textarea id="message" class="chatinp" rows="3" cols="27"></textarea>
<br><button class="send">Send</button>
</div>
</div>`)
)();
document.querySelector(`#chat #message`).placeholder = `Type something!`;