hide()和show()jquery

时间:2016-06-10 03:11:57

标签: jquery html

有人可以帮我解决这个问题吗? 我想隐藏那些没有任何文字的输入。但事情发生了。我不知道自己做错了什么。

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>

2 个答案:

答案 0 :(得分:1)

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

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

    }
}

答案 1 :(得分:0)

您的代码中存在多个问题

  • ('#btn'+i)返回一个字符串,该字符串没有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>