登录

javascript - js函数参数为对象

使用js拼接一个连接a元素

a的href是一个js函数,它的第二个参数s是一个对象:

s = {'l_name':'name','l_author':'author'};

本意是点击拼接好的a标签,再执行这个getDate函数,在getDate里获取到s的属性l_name和l_author的值,但是传入的s参数变成了下面这样,导致getDate的参数有问题执行不了:

对js的语法不是很熟悉啊,请问怎样解决?

# JavaScript
迷茫迷茫2154 天前528 次浏览

全部回复(3) 我要回复

  • 巴扎黑

    巴扎黑2017-04-10 15:52:42

    1)把对象s转成字符串
    var s = {'l_name':'name','l_author':'author'};
    function getData(pageIndex,sString){

    var sObject=JSON.parse(sString);
    //....
    console.log(sObject.l_name);
    //....

    }

    JSON.stringify(s);
    2)通过事件监听的方式
    3)
    var s = {'l_name':'name','l_author':'author'};
    function getData(pageIndex){

    //....
    console.log(s.l_name);
    //....

    }

    回复
    0
  • 高洛峰

    高洛峰2017-04-10 15:52:42

    把 s 边上的 + 号 引号 去掉

    另外 你把JavaScript前的引号 转义 是个啥回事儿
    还有 s 也是在页面上出现的js中的变量吧?

    <script>
    var s={a:1}
    function geta(a,b){
        console.log(a.a)
    }
    </script>
    <a href="javascript:geta(s)">a</a>
    
    //输出1

    另外 建议使用 监听a的点击事件

    回复
    0
  • 怪我咯

    怪我咯2017-04-10 15:52:42

    HTML环境下不能够直接执行js代码,所以必须是把代码转化为字符串写到html里面才能执行。你这样链接以后,js会将这个对象转换为字符串,所以你在参数哪里看到的就是一个[object Object]。我建议你把object里面的基本属性都拿出来单独传,或者用click事件绑定,在html代码里面写js并不是一个非常好的解决方案。

    回复
    0
  • 取消回复发送