html 和 js 工作问题总结(持续更新)

做为一个不是写前端代码的人…
却要写前端代码…难免会遇到许多的问题…


问题记录如下

freemarker 数字输出中的逗号问题

Long i=100000000l;
Map model=new Map();
model.put("t",i);
在freemarker中显示为100,000,000	
想按原样输出时${t} 显示为100,000,000	
${t?c} 显示为100000000
如果不加?c 默认情况下freemarker会将数字用逗号分隔
如何去掉","逗号呢.,加上"?c"就可以了。

当穿精度比较高的类型,传字符串到前端
如果还还不能显示,我们要在前端代码里加' ',引号...
如:
<#if ruleList??>
        <#list ruleList as item>
            tableList.push({"t":'${((item.clearRuleNo)?c)!''}',"x":${item.clearRuleName}});
        </#list>
    </#if>

js获取html对的值

// 获取select的值
var v = $("#myselect option:selected").val()
var t = $("#myselect option:selected").text()

如何根据js动态设置select下拉框的值

    // 设置选中值(下拉列表的id,下拉列表要选中    的值)
    function set_select_checked(selectId, checkValue){
        var select = document.getElementById(selectId);
        for (var i = 0; i < select.options.length; i++){
            if (select.options[i].value == checkValue){
                select.options[i].selected = true;
                break;
            }
        }
    }
    var loadData = function(){
        var rate = '${bean.taxRateType?if_exists}'
        var type = '${bean.taxRateType?if_exists}'
        set_select_checked('taxRateType',rate)
        set_select_checked('anchorType',type)
    }
    loadData()

js动态加载select数据源

var loadData = function () {
        $.ajax({
            url: "/ggg/ttt/list?limit=99999999"
            , method: 'GET'
            ,async:false
            , contentType : 'application/json'
            ,success : function(msg){
                var data = msg.data
                console.log(data)
                var programme_sel=[];
                programme_sel.push('<option value="" selected>规则组名</option>')
                for(var i=0,len=data.length;i<len;i++){
                    var programme = data[i];
                    programme_sel.push('<option value="'+programme.value+'">'+programme.name+'</option>')
                }
                console.log(programme_sel)
                $("#clearRuleSetNoSelect").html(programme_sel.join(' '));
                layui.form.render();
            }
        })
    }

[HTML]显示/隐藏DIV的技巧(visibility与display的差别)

div的visibility可以控制div的显示和隐藏,但是隐藏后页面显示空白:
style="visibility: none;"  
document.getElementById("typediv1").style.visibility="hidden";//隐藏  
document.getElementById("typediv1").style.visibility="visible";//显示

 
  
    
style="display: none;"  
document.getElementById("typediv1").style.display="none"/隐藏
document.getElementById("typediv1").style.display="";//显

// 切换div隐藏显示
var changeHidden = function(divId){
	var value = document.getElementById(divId).style.display
	document.getElementById(divId).style.display = value=="none"?"":"none"
}
changeHidden("mydiv")

js解决json精度丢失问题

//主入口
function getRealJsonData(baseStr) {
    if (!baseStr || typeof baseStr != 'string') return;
    var jsonData = null;
    try {
        jsonData = JSON.parse(baseStr);
    } catch (err){
        return null;
    }
    var needReplaceStrs = [];
    loopFindArrOrObj(jsonData,needReplaceStrs);
    needReplaceStrs.forEach(function (replaceInfo) {
        var matchArr = baseStr.match(eval('/"'+ replaceInfo.key + '":[0-9]{15,}/'));
        if (matchArr) {
            var str = matchArr[0];
            var replaceStr = str.replace('"' + replaceInfo.key + '":','"' + replaceInfo.key + '":"');
            replaceStr += '"';
            baseStr = baseStr.replace(str,replaceStr);
        }
    });
    var returnJson = null;
    try {
        returnJson = JSON.parse(baseStr);
    }catch (err){
        return null;
    }
    return returnJson;
}

//遍历对象类型的
function getNeedRpStrByObj(obj,needReplaceStrs) {
    for (var key in obj) {
        var value = obj[key];
        if (typeof value == 'number' && value > 9007199254740992){
            needReplaceStrs.push({key:key});
        }
        loopFindArrOrObj(value,needReplaceStrs);
    }
}

//遍历数组类型的
function getNeedRpStrByArr(arr,needReplaceStrs) {
    for(var i=0; i<arr.length; i++){
        var value = arr[i];
        loopFindArrOrObj(value,needReplaceStrs);
    }
}

//递归遍历
function loopFindArrOrObj(value,needRpStrArr) {
    var valueTypeof = Object.prototype.toString.call(value);
    if (valueTypeof == '[object Object]') {
        needRpStrArr.concat(getNeedRpStrByObj(value,needRpStrArr));
    }
    if (valueTypeof == '[object Array]') {
        needRpStrArr.concat(getNeedRpStrByArr(value,needRpStrArr));
    }
}

//使用:
var testString = '{"a":{"b":{"n":[{"a":"138476506","ad":"us","se":"测",' + 
'"e":"0","r":"0.0","s":"1","t":"2","c":"0","id1":35267723951111111111111111111111167885445,' + 
'"id2":472667239127885446}]},"q":"52"}}';
var data = getRealJsonData(testString);//直接放要解析的json字符串
var t = JSON.stringify(data, null,2);
console.log(t);
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页