我正在使用node.js创建一个聊天应用程序,并将一个名为message的变量设置为等于$('#posttext'),然后尝试调用message.val()并得到未定义。我对变量输出执行相同的操作,并尝试output.append()不执行任何操作。
我的JS:
var socket = io.connect('http://localhost:4000');
// Going Through DOM
var message = $('#posttext');
var output = $('#chat-row');
// Control Length Of Text & Emit Events
var maxchars = 120;
$(function(){
$('#posttext').keyup(function(e) {
if (e.keyCode == 13) {
socket.emit('chat', {
message: message.val(),
handle: 'Dev',
userType: 'Mod',
avatar: 'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/43/43bdf487f1f69fe7459ca354ea9b54dbc313849e.jpg'
});
}
var tlength = $(this).val().length;
$(this).val($(this).val().substring(0, maxchars));
var tlength = $(this).val().length;
});
});
// Listen for Events
socket.on('chat', function(data){
output.append('<img src="' + data.avatar + '" alt="Chat Avatar" class="ChatAvatar"> <div class="' + data.userType + 'ChatName">' + data.handle + '</div> <div class="' + data.userType + 'ChatMsg">' + data.message + '</div>');
});
我的HTML:
<div id="Chat">
<div id="chat-wrap">
<div id="chat-box">
<button id="chatScrollButton" onclick="scrollDownChat()">More Messages Below</button>
<div id="chat-row"></div>
</div>
<form id="send-message-area">
<textarea id="posttext" placeholder="Say Something (English)" maxlength="120"></textarea>
</form>
</div>
</div>
当我将消息更改为$('#posttext')时,它可以工作,但是为什么不能与变量一起工作?我该如何解决?
也很抱歉浪费HTML缩进,将代码粘贴到此处后代码丢失了格式。