如何在从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');
}
});
但没有任何反应
答案 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效率较低。