[英]how to add element to html with javascript
如何使用 javascript 将此代码放入<ul>
中。
<li>
<span class="username">nickname:</span> message
</li>
编辑:我正在制作一个聊天网站,我想将用户名部分加粗,但我不能。
代码:
<body>
<ul id="messages">
</ul>
<form id="form" action="">
<input id="messageinput" autocomplete="off" /><button>Send</button>
<input id="usernameinput" autocomplete="off" />
</form>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io();
var messages = document.getElementById('messages');
var form = document.getElementById('form');
var message = document.getElementById('messageinput');
var username = document.getElementById('usernameinput');
form.addEventListener('submit', function(e) {
e.preventDefault();
if(!username.value) {
var item = document.createElement('li');
item.textContent = `Error: Write a username`;
item.style.background = '#ff5e69'
messages.appendChild(item);
window.scrollTo(0, document.body.scrollHeight);
} else {
if (message.value) {
socket.emit('chat message', {username: username.value, msg: message.value});
message.value = '';
}
}
});
socket.on('chat message', function(data) {
var item = document.createElement('li');
item.textContent = `${data.username}: ${data.msg}`;
messages.appendChild(item);
window.scrollTo(0, document.body.scrollHeight);
}); </script> </body>
我正在使用这段代码,我尝试了很多方法来使用户名加粗,但都没有奏效。
你可以这样做:
var element = document.getElementById("one");
var newElement = '<div id="two">two</div>'
element.insertAdjacentHTML( 'afterend', newElement )
// new DOM structure: <div id="one">one</div><div id="two">two</div>
我留下参考链接
链接: https ://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML
如果你的ul
有一个 id,你可以这样做:
var htmlToAppend = '<li><span class="username">nickname:</span> message</li>' var element = document.getElementById("list") element.innerHTML = htmlToAppend
<ul id='list'> </ul>
其中 element 的innerHTML
属性是该元素所包含的 HTML。 编辑此属性将立即反映在页面上。
尝试
document.querySelector("#your_fav_form").addEventListener("submit", (e) => { e.preventDefault() let username = document.querySelector("#username").value.trim(); if (username == ""){ let message = document.querySelector("#message"); let li = document.createElement("li"); li.setAttribute("class", "username"); li.innerText = "Please enter your username"; if (message.innerText.trim() == "") { message.appendChild(li); } } else { alert("your socket logic goes here"); } });
.username{ font-weight: bold;
<ul id="message"></ul> <form id="your_fav_form" method="POST" action=""> <input type="text" id="username" name="username" autocomplete="off" data-id="username" /> <button type="submit">Submit Form</button> </form>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.