我在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中断开并显示任何内容。
由于
答案 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");
这应该有效