使用js过程中遇到的小问题总结(随使用情况不断添加)

本文探讨了在前端开发中处理数据时遇到的问题,包括拼接相同类型的json串、保留数字精度以及页面加载前的遮罩效果。通过具体实例展示了如何在不牺牲效率的情况下实现这些功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)拼接相同的两个json串

开发遇到问题背景:

在查询中使用combobox等easyui的控件,其data数据是由后台取得的,默认想在取得的数据加上(---全部---)这样的字样(本来可以在后台直接添加的,但是在新增弹框中还会用到这组数据,而这个时候就不需要有这个字样了,如果做两次这样的数据实在是浪费时间跟效率),所以我想在取得数据后抛到前台后再做处理。于是有了将两个类型相同的json串拼接在一起的需求。网上有人提出建一个数组,然后遍历这两个的元素放进去,再一种方法就是直接以处理字符串的方式拼接,然后重新生成json串。不过,我发现js数组里有unshif这二个方法,这个方法是向数组头部添加一个或者多个元素。所以我就有了一下想法:

    function test(){
        var s = eval("[{id:'',text:'--全部--'}]");
        var result = "[{id:'001',text:'组1'},{id:'002',text:'组2'},{id:'003',text:'组3'}]";//实际开发中,这个数据是由后台提供的
        var test = eval(result);
        test.unshift(s[0]);
        var dddd = JSON.stringify(test);
    }
得到的结果就是:
[{"id":"","text":"--全部--"},{"id":"001","text":"组1"},{"id":"002","text":"组2"},{"id":"003","text":"组3"}]
(2)js前台处理数字的保留精度

在使用C#处理数字并向前台返回数字的时候,我都是省事的用了.toString("0.00")方法来取的,但是由于这样向前台传的只是一个展示的数据,如果在前台想操作这个数据的时候就会有问题(例如,在你修改这个数据的时候,如果你取的是前台的数据去填充原来的框,那么就会出现问题了),为了让前台取得的数据跟数据库里的一致而又让前台保留两位小数的需求,那么我就把数据抛到前台来处理进行展示了。那么就又成了前台js需要做的事情了。

从网上获取的资料是有toFixed()方法。刚开始我直接用了前台的值去调用这个方法,发现点后没有提示,仔细看之后这是js中Number对象的一个方法,所以先将值为数字的变量转为number类型的,然后再去调用该方法,那么就实现了保留精度的需求了。

 function showmoney(value) {
        if (value != undefined) {
            var result = new Number(value);
            return result.toFixed(2);
        }
        else
            return "";
    }

(3)在页面打开之前加遮罩

//show load
(function () {
    try {
        $("<div class=\"datagrid-mask\"></div>").css({ 'z-index': 9999, opacity: 100, filter: 'alpha(opacity=100)', display: "block", width: "100%", height: $(window).height() }).appendTo("body");
        $("<div class=\"datagrid-mask-msg\"></div>").html("正在努力加载中,请稍候...").appendTo("body").css({ 'z-index': 10000, display: "block", left: ($(document.body).outerWidth(true) - 190) / 2, top: ($(window).height() - 45) / 2 });
    } catch (ex) { }
})();
//hidden Load
function dispalyLoad() {
    try {
        $(".datagrid-mask").remove();
        $(".datagrid-mask-msg").remove();
    } catch (ex) { }
}
$(document).ready(function () { dispalyLoad(); })





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值