将变量设置为$('#__')并使用.val()返回未定义

时间:2019-02-04 16:34:32

标签: jquery node.js

我正在使用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缩进,将代码粘贴到此处后代码丢失了格式。

0 个答案:

没有答案