javascript - 我如何从选择中获取输入字段中的数据价格?
问题描述
还会有产品 3、4 等。
输入字段名称、价格、id、类是从数据库中动态填充的,因此它们对于不同的项目是相同的。
$(".readers").change(function() {
var productParent = $(this).parent().parent();
var newPrice = parseFloat(productParent.find('.price').attr('data-price'));
productParent.find(".readers option:selected").each(function() {
newPrice += +$(this).attr('data-price')
});
productParent.find(".price").html("£" + newPrice.toFixed(2));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label>Size: </label>
<select class="product-variants readers form-control input-sm" id="readers" name="product_size">
<option data-price="0" value="Small">Small</option>
<option data-price="40" value="Medium">Medium</option>
<option data-price="60" value="Large">Large</option>
</select>
<input class="price pull-left form-control " itemprop="price" id="price" data-price="5.99">
<br>
<hr>
<label>Size: </label>
<select class="product-variants readers form-control input-sm" id="readers" name="product_size">
<option data-price="0" value="Small">Small</option>
<option data-price="40" value="Medium">Medium</option>
<option data-price="60" value="Large">Large</option>
</select>
</div>
<input class="price pull-left form-control" itemprop="price" id="price" data-price="5.99">
解决方案
使用父级获得价值。用于data
获得价值并获得您的价格。
$(".readers").change(function() {
var Parent = $(this).parent(".outer");
var actualPrice = parseFloat(Parent.find('.price').data('price'));
actualPrice += parseFloat(Parent.find(".readers option:selected").data('price'));
Parent.find(".price").val(actualPrice.toFixed(2));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- added outer div -->
<div class="outer">
<label>Size: </label>
<select class="product-variants readers form-control input-sm" id="readers" name="product_size">
<option data-price="0" value="Small">Small</option>
<option data-price="40" value="Medium">Medium</option>
<option data-price="60" value="Large">Large</option>
</select>
<input class="price pull-left form-control " itemprop="price" id="price" data-price="5.99">
</div>
<br>
<hr>
<div class="outer">
<label>Size: </label>
<select class="product-variants readers form-control input-sm" id="readers" name="product_size">
<option data-price="0" value="Small">Small</option>
<option data-price="40" value="Medium">Medium</option>
<option data-price="60" value="Large">Large</option>
</select>
<input class="price pull-left form-control" itemprop="price" id="price" data-price="5.99">
</div>
推荐阅读
- python - 我在文本文件中有一些数据,我应该如何解析我只会得到“isakm”和“esp”值的文档?
- jquery - jquery如何获取元素的属性
- java - Wildfly/Slf4j 集成问题
- c# - 实体框架 Migrationbuilder.CreateTable 跳过模型类
- python - “减少” numpy ndarray 的最后一个维度
- python - 如何从分隔列表创建关联数组?
- python - 当部分参数在所有测试场景中重复时,提供 pytest 参数化的更好方法是什么
- java - 如何按Java中的两个字段排序并指定排序方向?
- ios - iOS:如何在框架内加载 xib
- google-apps-script - 如何在谷歌应用脚本中将字符串转换为 UTF-16 格式