2016-06-10 143 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

哦,我的上帝,什麼是缺乏關注!謝啦。現在一切正常。 –