从textarea中删除文本后,将display:none设置为div

时间:2012-02-09 10:06:32

标签: jquery

如何在从textarea中删除文本后将display:none设置为某个div

我有这个

$("#par02par04text textarea").keyup(function() {
    $('#par02TextComments.comments').css('display','table-cell');
    $('#par02LabelComments.comments').css('display','table-cell');
});

在我开始在textarea中输入后设置显示到某个元素,我想在我从textarea删除文本时将其反转我想设置display:none

我写了这个

$("#par01par04text textarea").keyup(function() {
    var n = $("td#par01TextComments").length;
    if (n > 0) {
        $('#par01TextComments.comments').css('display','table-cell');
        $('#par01LabelComments.comments').css('display','table-cell');
    }
    else if (n == 0){
        $('#par01TextComments.comments').css('display','none');
        $('#par01LabelComments.comments').css('display','none');
    }
}); 

但没有任何反应

1 个答案:

答案 0 :(得分:5)

执行$("td#par01TextComments").length时,实际上是获取jquery对象的长度,而不是您查询的元素的值。

首先获取textarea的.val()值并检查长度

$("#par01par04text textarea").keyup(function() {
    var n = $(this).val().length;
    ...
});

注意:

您不应预先标记带有标记名的ID选择器(例如:td#someID),因为它会降低其效率。

ID选择器通常使用本机javascript函数getElementById()。通过使用标记名添加前缀,jquery无法使用本机函数和任何其他方式,然后getElementById效率较低。