提问者:小点点

为什么我的代码不能在jQuery中正确计算计数?


我正在尝试限制关键字输入。

每当用户输入一个关键字,它就会在该关键字后面加上'span',例如。

如下面的html代码。

我可以限制字,但计数不准确,但当它达到5,它停止输入。

如果我刷新页面,我可以再输入一个,然后再阻止我一次。

奇怪的是,如果我为var count=$('#result_tag').text()使用id就不起作用了。我得利用课堂。

我试过把/\S+/g改成/\S+/g,但不起作用,我必须保留它的资本。

jQuery:

$( "#tag" ).on( "keydown", function( event ) {

        var count=$('.result_tag').text();
        var words=count.match(/\S+/g).length;

        if(words >= 8 ){

            alert('No more than eight words');  
        }       

        //save tag after press enter key   
        else if ( event.which==188 || event.which == 13 ) {

        event.preventDefault();
        //codes will do the action

HTML:

<span id="result_tag" class="result_tag">keyword that user enter</span>
<span id="result_tag" class="result_tag">keyword that user enter</span>
<span id="result_tag" class="result_tag">keyword that user enter</span>

共2个答案

匿名用户

ID应该是唯一的,这就是为什么“如果我使用ID就不起作用”。

至于你的另一个问题,你计算的方法似乎有点费解。听起来你所需要做的就是数数跨度本身:

var words=$('.result_tag').length;

匿名用户

使用length属性获取关键字的计数。

    $("#tag").on("keydown", function(event) 
    {
         var count = $('.result_tag').length;
         if (count >= 8) 
         {
               alert('No more than eight words');
         }

         ...........
         ...........