【发布时间】:2018-02-12 01:23:42
【问题描述】:
我有以下代码为我提供所需的计算,但我希望它可以处理多个输出。
例如,A 部分和 B 部分将具有相同的 jQuery,但 B 部分可能具有不同的乘数或 calc3 等。
我将有多达 50 个部分,并试图避免编写 50 行 jQuery。有没有办法用 (this) 变量而不是 ('#id') 来写这个?
在下面的片段中,如果您添加数量、宽度、高度和深度 - 您将看到 A 部分的计算工作,但不是 B 部分,因为我试图简化 jQuery 计算。
//part1
$("#part1d").keyup(function() {
//part A
$('#part1A').val($('#part1q').val() * 1);
$('#part1AL').val($('#part1w').val() - $('#calc1').val());
$('#part1AW').val($('#part1d').val() - $('#calc2').val());
//part B
$('#part1A').val($('#part1q').val() * 2);
$('#part1AL').val($('#part1w').val() - $('#calc1').val());
$('#part1AW').val($('#part1d').val() - $('#calc2').val());
});
* {
margin: 0;
padding: 0;
float: left;
}
.wrap {
width: 96%;
margin: 2% 2% 500px 2%;
}
.partwrap {}
.partname {
width: 20%;
margin: 1% 20% 1% 0;
}
.partdata {
width: 10%;
}
input {
width: auto;
float: none;
}
.sectiontitle {
color: red
}
.partdescr {
color: purple;
}
.parts {
width: 150px;
}
.values {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!--values-->
<input class="values" id="calc1" value="1.4375">
<input class="values" id="calc2" value=".25">
<div class="wrap">
<!--part 1-->
<!--part 1 input-->
<div class="partwrap">
<div class="partdescr">
<div class="partname">Part Number: <input id="part1"></div>
<div class="partdata">Qty <input id="part1q"></div>
<div class="partdata">Width <input id="part1w"></div>
<div class="partdata">Height <input id="part1h"></div>
<div class="partdata">Depth <input id="part1d"></div>
</div>
<!--part 1 output-->
<div class="partdescr">
<div class="parts">Part Name</div>
<div class="parts">Qty</div>
<div class="parts">Length</div>
<div class="parts">Width</div>
<div class="parts">Height</div>
</div>
<div>
<div class="parts">Part A</div>
<input id="part1A" class="parts">
<input id="part1AL" class="parts">
<input id="part1AW" class="parts">
<input id="part1AH" class="parts">
</div>
<div>
<div class="parts">Part B</div>
<input id="part1A" class="parts">
<input id="part1AL" class="parts">
<input id="part1AW" class="parts">
<input id="part1AH" class="parts">
</div>
</div>
</div>
【问题讨论】:
-
您的 HTML 中有多个具有相同 id 的元素,这是一件坏事。文档的 ID 应该是唯一的。
-
谢谢迈克,我有这个目的是为了表明我希望 B 部分具有相同的输出(我会将 ID 更改为 part1B、part1BL 等),但想显示该部分B 将使用与 A 部分相同的 jQuery,使用 (this) 而不是每个单独的 ID。那将是 50 个重复的 jQuery 插入,除了 ID
标签: javascript jquery