.append jquery,每<span> </span>限制为一个字符

时间:2011-09-24 19:44:00

标签: jquery

我有这两个功能:

jQuery.fn.enterText = function(e){
if( $("#cursor").val() && e.keyCode != 32  ){
    var character = $("#cursor").val();
    $("#cursor").val("");
    this.append("<span class = 'text'>"+character+"</span>");
    $("#cursor").insertAfter(".text:last");
    $("#cursor").focus();

}
};

jQuery.fn.markCursor = function(e){
    $(this).focus();
   $(this).keyup(function(e) {
  $("#cursor-start").enterText(e);

});

};

我的问题是,如果快速输入文本,某些元素将包含多个字符,例如(abc)。我想知道如何以有效的方式限制一个字符,我想使用一个数组,但这不会太有效吗?

1 个答案:

答案 0 :(得分:1)

这应该做:

character = character.split("").join("</span><span class='text'>");
this.append("<span class='text'>" + character + "</span>");

我建议在普通的JavaScript函数中更改一些JQuery函数: document.getElementById("cursor-start")受到普遍支持,因此请使用$("#cursor-start")代替jQuery.fn.enterText = function(e){ var cursor = document.getElementById("cursor"); var character = cursor.value; if(character && e.keyCode != 32){ cursor.value = ""; character = character.split("").join("</span><span class='text'>"); this.append("<span class = 'text'>"+character+"</span>"); $("#cursor").insertAfter(".text:last"); cursor.focus(); } }; jQuery.fn.markCursor = function(e){ $(this).focus(); $(this).keyup(function(e) { $("#cursor-start").enterText(e); }); }; 。优化代码:

{{1}}