javascript - 如何选择 eval() 值
问题描述
我有表格
var number = $('.price').text().replace(/[^0-9]/g, '');
$('input#pricea').attr('value', number)
$("select.percent").change(function() {
var selectedPercent = $(this).children("option:selected").val().replace(/[^0-9]/g, '');
$('input#percenta').attr('value', selectedPercent)
});
var x = eval("number* selectedPercent") + "<br>";
$('#demo').attr('value', x)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="price">300 $</div>
<select class="percent">
<option value="0">0%</option>
<option value="30%">30%</option>
<option value="40%">40%</option>
<option value="50%">50%</option>
<option value="60%">60%</option>
</select>
<div id="demo"></div>
<input type="hidden" name="pricea" id="pricea">
<input type="hidden" name="percenta" id="percenta" value="0">
最后#demo
不显示value
。有人能帮我吗?请。而且因为我使用了select
,所以我想选择将返回不同结果的选项#demo
解决方案
不要eval()
用于这个。相反,在您的.change()
回调中将您的字符串数字转换为实际数字(在您使用时为您完成*
),然后使用显示输出.append()
(这将允许每次更改显示多个数字,使用.html()
或每次更改.text()
显示一个数字) . 此外,要获取选定的值,您可以简单地执行$(this).val()
并%
从每个<option>
值属性中删除(因此您不需要使用正则表达式将其删除),无需获取选定的子选项。
var number = $('.price').text().replace(/[^0-9]/g, '');
$('input#pricea').attr('value', number)
$("select.percent").change(function() {
var selectedPercent = $(this).val();
$('input#percenta').attr('value', selectedPercent);
var x = (number * selectedPercent) + "<br>";
$('#demo').append(x);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="price">300 $</div>
<select class="percent">
<option value="0">0%</option>
<option value="30">30%</option>
<option value="40">40%</option>
<option value="50">50%</option>
<option value="60">60%</option>
</select>
<div id="demo"></div>
<input type="hidden" name="pricea" id="pricea">
<input type="hidden" name="percenta" id="percenta" value="0">
推荐阅读
- javascript - VueJS 首先导航到根路由
- google-chrome - Chrome 扩展:无法监听通过服务工作者进行的网络调用
- javascript - VueJs - Retrieve objects from array into new object array
- android - 防止 Jacoco 在默认 gradle 任务中运行(在每个本地构建中都会发生)
- ruby - Rspec mongoid - 测试嵌入式文档回调(after_save)
- c# - 将存储在项目文件夹中的图像添加到 Microsoft Interop Word 文档
- laravel - 流明实时 API
- google-apps-script - 尝试将 Google 表格 moveTo 脚本转换为 copyTo 脚本
- javascript - 查找邮政编码 | 使用谷歌地图地理编码反向的邮政编码
- apache-spark - 第一次执行 spark 大约需要 13 秒,但第二次,每隔一次执行需要 3.5 秒