2012-02-10 90 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) - 根据布尔输入显示或隐藏元素。