我需要优化我的代码

时间:2012-02-23 16:02:37

标签: jquery

我无法优化下面的代码,在写入或删除textarea中的文本后,正在更改某些表格单元格的css属性

$('#par01par04text textarea').keyup(function() {
          var n = $(this).val().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');
          }
        });


        $('#par02par04text textarea').keyup(function() {
          var n = $(this).val().length;
          if (n > 0) {
            $('#par02TextComments.comments').css('display','table-cell');
            $('#par02LabelComments.comments').css('display','table-cell');
          }
          else if (n == 0){
            $('#par02TextComments.comments').css('display','none');
            $('#par02LabelComments.comments').css('display','none');
          }
        });


        $('#par03par04text textarea').keyup(function() {
          var n = $(this).val().length;
          if (n > 0) {
            $('#par03TextComments.comments').css('display','table-cell');
            $('#par03LabelComments.comments').css('display','table-cell');
          }
          else if (n == 0){
            $('#par03TextComments.comments').css('display','none');
            $('#par03LabelComments.comments').css('display','none');
          }

我写了这段代码,但是有一个错误“$(textarea)没有定义”我知道我很接近,任何人都可以帮我把它放在一起

$.each(
      [
        { textarea: '#pom02par01UwagiText textarea', Text: '#pom02par01TextComments.comments', Label: '#pom02par01LabelComments.comments' },
        { textarea: '#pom02par02UwagiText textarea', Text: '#pom02par02TextComments.comments', Label: '#pom02par02LabelComments.comments' },
        { textarea: '#pom02par03UwagiText textarea', Text: '#pom03par02TextComments.comments', Label: '#pom02par03LabelComments.comments' },
        { textarea: '#pom02par04UwagiText textarea', Text: '#pom02par03TextComments.comments', Label: '#pom02par04LabelComments.comments' }
      ],
      function(index,value){       
        $(textarea).keyup(function() {
          var n = $(textarea).val().length;
          if (n > 0) {
            $(value.Text).css('display','table-cell');
            $(value.Label).css('display','table-cell');
          }
          else if (n == 0){
            $(value.Text).css('display','none');
            $(value.Label).css('display','none');
          }
        });
      }
    );

1 个答案:

答案 0 :(得分:2)

您必须选择当前项目:

...
function (index, value) {
    var me = $(value.textarea);
    me.keyup(function () { var n = me.val().length; ... });
}
...