Jquery 计算contentEditable DIV中的字符数

Jquery 计算contentEditable DIV中的字符数,jquery,counter,contenteditable,Jquery,Counter,Contenteditable,我使用这个插件计算输入和文本区域的字符数: 我还需要在将“contentEditable”设置为True的情况下对DIV中的字符进行计数 这是否可能修改此插件 我想我需要在这方面做些改变: var count = $(obj).val().length; 但我真的不知道contentEditable是怎么工作的。。。有什么想法吗 谢谢 编辑: 我是按照brettz9的建议来做的: var method = $.inArray(obj.nodeName.toLowerCa

我使用这个插件计算输入和文本区域的字符数:

我还需要在将“contentEditable”设置为True的情况下对DIV中的字符进行计数

这是否可能修改此插件

我想我需要在这方面做些改变:

            var count = $(obj).val().length;
但我真的不知道contentEditable是怎么工作的。。。有什么想法吗

谢谢

编辑:

我是按照brettz9的建议来做的:

var method = $.inArray(obj.nodeName.toLowerCase(), ['textarea', 'input']) !== -1 ? 'val' : 'text';
var count = $(obj)[method]().length;
我只是对其他我需要的字段做了一个小问题,没有最小/最大长度(我有一个输入和一个可编辑的内容)

这是有条件的部分:

                if (other_required){
                if ($(other_required).val().length > 0 && available >= 0){
                    $(submit_button).attr("disabled", "");
                } else {
                    $(submit_button).attr("disabled", "disabled");
                }
我不知道如何声明[method]var并将其与“other_required”一起使用
val()
用于获取输入值,如textarea、textbox等。请尝试使用
text()

编辑:

试试这个:

function count(obj) {
  var method = $.inArray(obj.nodeName.toLowerCase(), 
    ['textarea', 'input']) !== -1 ? 'val' : 'text';
  return $(obj)[method]().length;
}
您的代码如下所示:

if (other_required){
if (count(other_required) > 0 && available >= 0){
    $(submit_button).attr("disabled", "");
} else {
    $(submit_button).attr("disabled", "disabled");
}

您可以这样做:

// We'll assume it is contenteditable (which uses text, or could also use html (innerHTML) if you wanted to count markup length) 
//  if it is not a textarea or input (which uses value)
var method = $.inArray(obj.nodeName.toLowerCase(), ['textarea', 'input']) !== -1 ? 'val' : 'text';
var count = $(obj)[method]().length;

谢谢brettz,这很好用。。。我只是对插件做了一次修改,需要多个输入最小/最大长度,但有一个问题。。。它类似于“if(other_required){if($(other_required).val().length>0&&available>=0){$(submit_button).attr(“disabled”(“disabled”),“;}}}”我不知道如何为该实例调用[method]var,而“other_required”(other_required)对象(因为我现在有1个输入和1个可编辑的内容)“[method]”允许方法字符串(“val”或“text”)用作方法的动态名称,具体取决于元素是否为textarea(或input)。因此,它相当于$(obj).text()或$(obj).val(),具体取决于节点名(元素的类型)。对于以上内容,您可以将“.val()”替换为“[method]()”,然后在上面的一行中,像我一样将“method”设置为“val”或“text”。至少我知道你想这么做。