如果在jQuery中声明问题

时间:2011-07-20 12:37:58

标签: jquery if-statement conditional-statements word-count

我在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中断开并显示任何内容。

由于

2 个答案:

答案 0 :(得分: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');
        }
    });
});

答案 1 :(得分: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");

这应该有效