除了隐藏div中的那些之外,Jquery更新元素值

时间:2017-06-15 18:38:04

标签: javascript jquery html

我有一组相同的输入字段,我用val()更新值。他们需要具有相同的价值,这样就可以了。但是有些输入字段位于隐藏的div中,我不想更新这些字段的值,但是我的代码会更新它们。

$('.split').val(split_amount);

在我的Jquery代码中:

this.Report.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
this.Report.ServerReport.ReportServerUrl = new Uri(App.Config.ReportServerPath);
this.Report.ServerReport.ReportPath = this.ReportPath;
this.SetRerportParameterValues(); // This does nothing since the report doesn't have any parameters
this.Report.AsyncRendering = false;

所以所有的数值都相等。但是我不希望填充隐藏div中的输入字段。

感谢任何帮助。提前谢谢!

3 个答案:

答案 0 :(得分:6)

这样可以解决问题:

$(".split:not(.hidden-div > .split)").val("your value");

此选择器将使用类split对所有元素进行限定,然后取消所有hidden-div子元素并且具有类split的元素。

或者,如果hidden-div实际上不可见,那么您可以使用基于元素可见性过滤的jQuery选择器:

$(".split:visible").val("your value");

但请注意,如果页面上有许多split元素,则此选择器的效果不佳。 jQuery必须检查多个元素属性才能确定可见性。根据{{​​3}}:

  

由于以下几个原因,可以将元素视为隐藏:

     
      
  • 他们的CSS显示值为none。
  •   
  • 它们是type =“hidden”的表单元素。
  •   
  • 它们的宽度和高度显式设置为0.隐藏了一个祖先元素,因此该元素不会显示在页面上。
  •   

答案 1 :(得分:1)

您是否尝试过this

$('.split:visible').val(split_amount);

答案 2 :(得分:0)

试试这个:

$('.split).each(function()){ 
   $(this).val()='yours value');
   if($( this).parent().is( "div." )) { 
      $(this).val()=''; 
   } 
}