0

我在 jQuery 中的 if 语句似乎破坏了这段代码,我不知道为什么:(这里有一些代码:

$(document).ready(function wordCount() //init
{
    $('#text_area').keyup(function () //when you type in the text area
    {
        $('#limit').html($(this).val().split(/\b[\s,\.-:;]*/).length - 1 + ' words'); //count the number of words 
        //and print it out in paragraph #limit 
        //if there are more than 250 words...
        if ($(this).val().split(/\b[\s,\.-:;]*/).length - 1 > 250) {
            //print it out  
            $('#limit').html($(this).val().split(/\b[\s,\.-:;]*/).length - 1 + ' out of 250 words');
            //color it in red
            $('#limit').css("color": "red");
            //disable the submit button.
            $('#submit_button').attr('disabled', 'disabled');
        }
    });
});

无需 if 语句即可完美运行。但是一旦我添加了一些条件,它就会中断并且在#limit 中什么也不显示。

谢谢

4

2 回答 2

2

当声明出现时它会中断,if因为:

$('#limit').css("color": "red");  // semi-colon is wrong

应该:

$('#limit').css("color", "red");  // use a comma instead

示例:http: //jsfiddle.net/H2JWy/

$(document).ready(function wordCount() //init
{
    var limit = $('#limit');
    var submit = $('#submit_button');
    $('#text_area').keyup(function() //when you type in the text area
    {
        var len = $(this).val().split(/\b[\s,\.-:;]*/).length - 1;
        limit.html(len + ' words');
        if (len > 250) {
            limit.html(len + ' out of 250 words').css("color", "red");
            submit.attr('disabled', 'disabled');
        }
    });
});
于 2011-07-20T12:49:18.977 回答
0

将你分配 $(this).val().split(/\b[\s,\.-:;]*/).length给一个变量并使用你的 if

var length = $(this).val().split(/\b[\s,\.-:;]*/).length ; 

 if ( (length- 1) > 250) {


 }

@blargie-bla 。如果你说你$(this).val().split(/\b[\s,\.-:;]*/).length的工作。

更新

$('#limit').css("color": "red");

应该

$('#limit').css("color","red");

这应该工作

于 2011-07-20T12:49:12.980 回答