Javascript 汇总总Jquery
我已经用HTML创建了一个表。该表由一个标题和许多行组成,这些行称为“族”。每个族行可以有许多行表示族的单个成员(请参见下面的代码) 因此,如果我更改Smith Family的输入值,则只应更新Smith的总年龄Javascript 汇总总Jquery,javascript,jquery,html,apex-code,Javascript,Jquery,Html,Apex Code,我已经用HTML创建了一个表。该表由一个标题和许多行组成,这些行称为“族”。每个族行可以有许多行表示族的单个成员(请参见下面的代码) 因此,如果我更改Smith Family的输入值,则只应更新Smith的总年龄 提前谢谢 嗯,我不确定我是否理解您的结构,因为表中没有具体的数据,但根据这一点,我假设您将在可识别的特定字段中有特定的年龄,出于某种原因,您需要年龄的总和 JS 但话说回来,我可能已经筋疲力尽了。 编辑: 好的,根据你的表,我给你一个机会,你需要每个姓一个,然后每个年龄一个。如果你把t
提前谢谢 嗯,我不确定我是否理解您的结构,因为表中没有具体的数据,但根据这一点,我假设您将在可识别的特定字段中有特定的年龄,出于某种原因,您需要年龄的总和 JS 但话说回来,我可能已经筋疲力尽了。 编辑: 好的,根据你的表,我给你一个机会,你需要每个姓一个,然后每个年龄一个。如果你把td作为姓氏和年龄的td,可能会更容易
var personage = 0;
var newage = 0;
$('table tr td.familyname').each(function(){
$('table tr td.familyname td.age).each(function(){
newage = +$(this).html();
personage = personage + newage;
});
$('table tr td.familyname td.totalage').append(personage);
});
让我玩一下小提琴,看看能想出什么办法。在仔细研究了你给我的回答后,我找到了一个很好的解决办法
JavaScript Code
function rollupSummary(val)
{
var rolled = 0.00;
$j('.child_'+val).each(function() {
rolled = rolled + parseFloat($j(this).val());
});
$j('.'+val).text(rolled.toFixed(2));
}
HTML代码
<table width ="100%" class="gridtable">
<tr>
<th>Family Name</th>
<th>Address</th>
<th>Age Total</th>
</tr>
<apex:repeat value="{!Families}" var="Families">
<apex:repeat value="{!Families}" var="Family">
<tr>
<td>{!Family.familyName__c}</td>
<td>{!Family.address__c</td>
<td>
<apex:outputText styleClass="{!Family.Id}" value="{!Family.AgeTotal}"/>
</td>
</tr>
<apex:repeat value="{!Family.member}" var="line">
<td>{!line.firstName__c}</td>
<td>{!line.gender__c}</td>
<td>
<apex:inputField value="{!line.Age}" onchange="rollupSummary('{!Family.Id}');" styleClass="child_{!Family.Id}"/>
姓
地址
总年龄
{!Family.familyName\uuuu c}
{!Family.address\uu\c
{!line.firstName\uuu c}
{!行。性别{uuu c}
希望这能有所帮助。谢谢你的反馈,蒂姆。我已经添加了关于我原始问题的更多信息。我尝试使用小提琴,但在代码中使用它时,我似乎出现了空指针错误。干杯,蒂姆。我将使用上述解决方案,看看进展如何。我已经花了一整天的时间,只是无法获得所有的jquery选择器在桌子上工作。但是!它和div一起工作非常好——如果你有灵活性,你可能会考虑一下。
var personage = 0;
var newage = 0;
$('table tr td.familyname').each(function(){
$('table tr td.familyname td.age).each(function(){
newage = +$(this).html();
personage = personage + newage;
});
$('table tr td.familyname td.totalage').append(personage);
});
JavaScript Code
function rollupSummary(val)
{
var rolled = 0.00;
$j('.child_'+val).each(function() {
rolled = rolled + parseFloat($j(this).val());
});
$j('.'+val).text(rolled.toFixed(2));
}
<table width ="100%" class="gridtable">
<tr>
<th>Family Name</th>
<th>Address</th>
<th>Age Total</th>
</tr>
<apex:repeat value="{!Families}" var="Families">
<apex:repeat value="{!Families}" var="Family">
<tr>
<td>{!Family.familyName__c}</td>
<td>{!Family.address__c</td>
<td>
<apex:outputText styleClass="{!Family.Id}" value="{!Family.AgeTotal}"/>
</td>
</tr>
<apex:repeat value="{!Family.member}" var="line">
<td>{!line.firstName__c}</td>
<td>{!line.gender__c}</td>
<td>
<apex:inputField value="{!line.Age}" onchange="rollupSummary('{!Family.Id}');" styleClass="child_{!Family.Id}"/>