2016-06-10 89 views
1

有人可以帮我解决这个问题吗?
我想隐藏没有任何文字的输入。但是会发生。我不知道我做错了什么。问题hide()和show()jquery

Teste1: <input type="text" value="conteudo1" id="btn1" > 
Teste2: <input type="text" id="btn2" > 
Teste3: <input type="text" id="btn3" > 
Teste4: <input type="text" value="conteudo4" id="btn4" > 
Teste5: <input type="text" value="conteudo5" id="btn5" > 
Teste6: <input type="text" id="btn6" > 


</body> 
</html> 

<script> 

$(document).ready(function() { 

    teste(); 

}); 

function teste(){ 
    for (i = 1 ; i < 7 ; i++) { 
     if(('#btn'+i).val == 0){ 
      $('#btn'+i).show(); 
      else{ 
       $('#btn'+i).hide(); 
      } 
     } 

    } 
} 


</script> 
+0

变化'( '#BTN' + I).VAL == 0' ('#btn'+ i).val()。length == 0' – guradio

回答

1

您在代码中出现错误。你的其他{}在你的if {}中。此外,在if语句中,调用元素时缺少$。

function teste(){ 
    for (i = 1 ; i < 7 ; i++) { 
     if($('#btn'+i).val == 0){ 
      $('#btn'+i).show(); 
     }else{ 
      $('#btn'+i).hide(); 
     } 

    } 
} 
+0

这是什么给你'$('#btn'+ i).val'?我没有得到upvote – guradio

+0

目标是我有一个输入已经填满,隐藏这个输入。 我想检查输入是否与此行有任何价值,但我忘了。()在.val –

0

有多种问题,在你的代码

  • 返回一个字符串,它没有val属性,这样的条件永远不会为真,则需要使用$('#btn'+i).val()
  • 我想你想要隐藏标签和文字,在这种情况下,您需要将它们包装在一个元素中

您可以将一个通用类添加到所有元素,以便于选择它们。

然后,你需要包装标签和输入另一个元素,这样既可以隐藏

$(document).ready(function() { 
 

 
    teste(); 
 

 
}); 
 

 
function teste() { 
 
    $('input.btn').filter(function() { 
 
    return !!this.value; 
 
    }).parent().hide(); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<span>Teste1: <input type="text" class="btn" value="conteudo1" id="btn1"></span> 
 
<span>Teste2: <input type="text" class="btn" id="btn2"></span> 
 
<span>Teste3: <input type="text" class="btn" id="btn3"></span> 
 
<span>Teste4: <input type="text" class="btn" value="conteudo4" id="btn4"></span> 
 
<span>Teste5: <input type="text" class="btn" value="conteudo5" id="btn5"></span> 
 
<span>Teste6: <input type="text" class="btn" id="btn6"></span>

+0

哦,我的上帝,什么是缺乏关注!谢啦。现在一切正常。 –