2012-02-10 160 views
0

,我需要選擇一些項目,並檢查是否值不爲空,並隱藏previus項目....但沒有工作....JQUERY如何選擇項目

例如:

<script> 
    if($('input[type=text],input[type=email],input[type=password]').val() != ""){ 
    $(this). prev().hide(); 
    } 
</script> 

<div class="prova"></div> 
<input type="text"> 

<div class="prova"></div> 
<input type="text"> 

<div class="prova"></div> 
<input type="text"> 

當我加載頁面previus div爲每個輸入,而不是隱藏....有人可以幫助我嗎?

回答

0

您可以通過將函數傳遞給.val()來實現。

var inputs = $('input[type=text],input[type=email],input[type=password]'); 

inputs.val(function(i,curr_val){ 
    if(curr_val) 
     $(this).prev('.prova').hide(); 
    return curr_val; 
}); 
+0

如果您的主要要求是設置不是OP的元素的值,那麼這種方法更好。 – ShankarSangoli 2012-02-10 02:03:59

1

你想這樣做:

$(':input').each(function() { 
    if ($(this).val() != "") { 
    $(this).prev().hide(); 
    } 
}); 
2

當你調用一個匹配的元素它獲得的第一個元素匹配的元素集合的當前值的呼叫val()方法。所以你應該運行一個循環檢查每個元素的值,然後隱藏前一個元素。嘗試這個。

$('input[type]').each(function(){ 
    if($(this).val()){ 
     $(this).prev().hide(); 
    } 
}); 

如果您必須顯示前一個元素,如果有值,那麼您可以使用此腳本。

$('input[type]').each(function(){ 
    $(this).prev().toggle($(this).val() == ''); 
}); 

.toggle(showOrHide) - 根據布爾輸入顯示或隱藏元素。