jQuery 字符计数变量问题

Posted

技术标签:

【中文标题】jQuery 字符计数变量问题【英文标题】:jQuery Char Count Variable Issue 【发布时间】:2014-03-02 17:23:17 【问题描述】:

我正在查看在 jQuery 中使用字符计数的各种方法,并找到了一种并对其进行了修改并实现了它,但我遇到了一些问题。只是想知道你们是否可以给我任何关于我可能出错的地方的指示。

这是我的代码:

function countChar(val) 

    var len = val.value.length;

    if (len >= 500)
    
        val.value = val.value.substring(0, 500);
        $('.stat').text(0);
    
    else 
    
        $sv = (500 - len);        
        $('.stat').text($sv);
        if ($sv <= 20)
                   
            $('.stat').css('border': '1px solid #C33', 'color': '#C33', 'background-color': '#F6CBCA');
        
        else if ($sv >= 21 && $sv <= 150)
        
            $('.stat').css('border': '1px solid #9F6000', 'color': '#9F6000', 'background-color': '#FEEFB3');
        
        else
        
            $('.stat').css('border': '1px solid #090', 'color': '#090', 'background-color': '#DFF2BF');
        

    


countChar($('#notes').get(0));
$('#notes').keyup(function() 
    countChar(this);
);

My ('#notes') 只是一个普通的文本区域。

我有一个小提琴here:

这是基于here找到的问题

当我在我的页面上实现它时,它没有显示出来。在查看萤火虫时,它给了我以下错误:

TypeError: val 未定义

据我了解,此错误意味着您需要使用 var 声明它。

我已经这样做了,然后我收到以下错误:

TypeError: val.value 未定义

我确实尝试过在 val.value 上做一个 var,但这会引发语法错误。

我确实尝试在 countChar() 中使用 var val,但它给出了以下错误:

语法错误:缺少形式参数

我似乎看不出我缺少什么,因为它以我希望的方式在小提琴中工作。

任何指针将不胜感激。提前致谢。

【问题讨论】:

您正在传递一个元素,出于某种原因,您认为定义一个变量来传递该元素到函数的参数应该是一个好主意? 我不确定问题出在哪里,因为您提供的 jsfiddle 示例似乎运行良好。 我无法在小提琴上复制这个问题。我不知道为什么 FF 和 Chrome 会抛出这些错误。 Emile:那是我的错,我现在已经修复了代码 将构造函数更改为function countChar(val) 【参考方案1】:

问题似乎是我把它放在了 document.ready 之外,甚至没有意识到我有。它现在就像一个魅力

【讨论】:

以上是关于jQuery 字符计数变量问题的主要内容,如果未能解决你的问题,请参考以下文章

如何将C字符串中的计数器变量赋予函数

Shell脚本编程 - 1. 变量

Shell脚本编程 - 1. 变量

使用jquery的元素nth-child中的变量

使用 jquery inarray() 搜索字符串变量返回 -1

AngularJS:基于变量计数输出HTML