onclic事件传值发生变化的问题

Posted super-yu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了onclic事件传值发生变化的问题相关的知识,希望对你有一定的参考价值。

项目上偶然遇见a标签的点击事件,传值有误的情况:

1、问题描述:通过js代码拼接了一段html代码,通过断点看,拼接的html里参数都正常,就是通过点击事件,参数到点击方法时,值发生变化,代码如下:

技术分享图片
landHtml:function(e){
        var landInfo = e.land;
        var h = "";
        h += "<div class=‘open-info-text-row‘><div class=‘open-info-text-key‘>宗地号:</div><div>" + landInfo.landParcelCode + "</div></div>";
        h += "<div class=‘open-info-text-row‘><div class=‘open-info-text-key‘>权利人:</div><div>" + landInfo.obligeeName + "</div></div>";
        h +="<div class=‘ivu-table ivu-table-border‘>";
        
        h +="<div class=‘ivu-table-header‘ style=‘font-weight: bolder;‘>";
        h +=‘<table cellspacing="0" cellpadding="0" border="0" style="width:100%;">‘;
        h +="<tr><td style=‘width:30%‘>权利人关系</td><td>企业名称</td>";
        h +="</table>";
        h +="</div>";
        
        h +="<div class=‘ivu-table-body‘>";
        h +=‘<table cellspacing="0" cellpadding="0" border="0" style="width:100%;">‘;
        if (e.entList && e.entList.length > 0){
            for (var i = 0; i < e.entList.length; i++) {
                var owership = "权利单位";
                if (e.entList[i].ownershipType == 1){
                    owership = "承租企业";
                }
                h += "<tr><td style=‘width:30%‘>"+ owership +"</td><td><a onclick=openEntInfo(‘"+ e.entList[i].spCode +"‘)>"+ e.entList[i].spName +"</a></td></tr>"
            }
        }
        
        h +="</table>";
        h +="</div></div>";
        
        return h;
    }
View Code

2、将上一段运行完的html代码复制出来,如下:

技术分享图片
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>ceshi</title>
    <meta charset="UTF-8" />
</head>
<style>
    a {
        color:#39f;
        cursor: pointer;
    }
    a:hover{
        text-decoration:underline;
    }
</style>

<body>

<div class=‘open-info-text-row‘><div class=‘open-info-text-key‘>宗地号:</div><div>25008</div></div>
<div class=‘open-info-text-row‘><div class=‘open-info-text-key‘>权利人:</div><div>xx有限公司</div></div>
<div class=‘ivu-table ivu-table-border‘>
    <div class=‘ivu-table-header‘ style=‘font-weight: bolder;‘>
        <table cellspacing="0" cellpadding="0" border="0" style="width:100%;"><tr><td style=‘width:30%‘>权利人关系</td><td>企业名称</td></table>
    </div>
    <div class=‘ivu-table-body‘>
        <table cellspacing="0" cellpadding="0" border="0" style="width:100%;">
            <tr>
                <td style=‘width:30%‘>权利单位</td>
                <td><a onclick=openEntInfo(2854257231529985)>a有限公司</a></td>
            </tr>
            <tr>
                <td style=‘width:30%‘>承租企业</td>
                <td><a onclick=openEntInfo(11699043894728605938)>b有限公司</a></td>
                </tr>
            <tr>
                <td style=‘width:30%‘>承租企业</td>
                <td><a onclick=openEntInfo(11699043894728605937)>c有限公司</a>
                </td>
                </tr>
            <tr>
                <td style=‘width:30%‘>承租企业</td>
                <td><a onclick=openEntInfo(11699043894728605936)>d科技有限公司</a>
                </td>
            </tr>
        </table>
    </div>
</div>

<script type="text/javascript">
    function openEntInfo (spCode){
        alert(spCode);
    }
</script>
</body>
</html>
View Code

3、点击b有限公司的时候,发现参数值不是 11699043894728605938,非常疑惑!

解决:参数加引号就ok

<td><a onclick=openEntInfo(‘11699043894728605938‘)>b有限公司</a></td>

以上是关于onclic事件传值发生变化的问题的主要内容,如果未能解决你的问题,请参考以下文章

为啥尽管输入的值确实发生了变化,但 jquery 更改事件却没有触发? [复制]

观察者模式的应用:Winform窗体之间传值

CAD当前选择实体发生变化调用事件(com接口)

JS SDK auth.logout 事件行为最近似乎发生了变化——这是怎么回事?

input输入框内容变化实时监听

flink入门-流式计算概念