Javascript 获取在文本区域中键入的最后一个单词
我试图把我键入的最后一个单词输入到一个文本区域,并将其发送到一个函数中Javascript 获取在文本区域中键入的最后一个单词,javascript,jquery,Javascript,Jquery,我试图把我键入的最后一个单词输入到一个文本区域,并将其发送到一个函数中 $('document').ready(function () { $('#my_text').focus(function () { $('#my_text').keydown(function (e) { if (e.keyCode == '32') { console.log("Space");
$('document').ready(function () {
$('#my_text').focus(function () {
$('#my_text').keydown(function (e) {
if (e.keyCode == '32') {
console.log("Space");
var lastWord = "";
//Code to get last word that was typed
getLastWord(lastWord);
//$('DivToScroll').css("keyword");
}
});
console.log("Focused");
});
});
我似乎找不到正确的代码来在文本区域中键入最后一个单词,我已经四处查看,也没有这样的运气。非常感谢您的帮助。就像朱维安说的:
$(document).ready(function () {
$('#my_text').on('keyup', function (e) {
if(e.which == 32){ // Press space
var words = $(this).text().split(' ');
var lastWord = words[words.length - 1];
console.log(lastWord);
}
});
});
var words=$(this.text().split(“”);console.log(words[words.length-1])
您正在将一个事件处理程序绑定到另一个事件处理程序中=坏主意。@TJ在某些情况下,它实际上可能是有意义的(例如,在文档就绪事件中绑定一个click事件),但是是的,在这种情况下,keydown事件处理程序将在关注输入时触发相同的次数(如果我在输入中单击5次,然后按一个键,函数将执行5次)并且DOM中没有类型为document
的元素,您应该使用$(document)
来自DOC:$().ready(handler)(不建议这样做)
var word=$(this.text().split(“”).pop();
为什么在有pop()时使用长度准确执行吗?@b当元素失去焦点时,它会触发。有点像模糊
,只是它支持事件冒泡。。当文本区域失去焦点时,会调用focusout
,所以你不必每次按键都调用该函数,只有在你不必在文本区域中写入时才会调用。它不可能是什么t如果需要,请使用input
或change
事件,而不是focusout
。OP需要用户在文本区域键入的最后一个字,而不是文本区域中的最后一个字。最后一个字可能是文本区域中的第一个字或任何字。是的,我需要这样,当用户点击空格键时,它就会得到最后一个字和s结束它的功能