javascript [object,Object]

时间:2022-05-28 05:02:18

今天给html标签的属性赋值为对象时,发现取出来的值为 [object,Object],感觉有点奇怪。

代码如下:

 <!DOCTYPE html>
 <html>
     <head>
         <meta charset="UTF-8">
         <title>[object Object]</title>
         <script type="text/javascript" src="../../trd/jquery/jquery-1.9.1.min.js"></script>
         <script type="text/javascript">
             $(function(){
                 var student = {name:"小明",gender:"男"};
                 $("#txt").attr("rowData",student);//给id为txt的标签添加rowData属性,值为student对象

                 console.log($("#txt").attr("rowData"));//控制台输出为:[object Object]
                 alert($("#txt").attr("rowData"));//弹出框中信息为:[object Object]
             });
         </script>
     </head>
     <body>
         <input type="text" name="txt" id="txt"/>
     </body>
 </html>

那怎样可以取到对象的值呢?我的做法是赋值的时候,先用JSON.stringify方法将student对象转换为json字符串。

代码如下:

 <!DOCTYPE html>
 <html>
     <head>
         <meta charset="UTF-8">
         <title>[object Object]</title>
         <script type="text/javascript" src="../../trd/jquery/jquery-1.9.1.min.js"></script>
         <script type="text/javascript">
             $(function(){
                 var student = {name:"小明",gender:"男"};
                 $("#txt").attr("rowData",JSON.stringify(student));//给id为txt的标签添加rowData属性,值为student对象

                 console.log($("#txt").attr("rowData"));//控制台输出为:{"name":"小明","gender":"男"}
                 alert($("#txt").attr("rowData"));//弹出框中信息为:{"name":"小明","gender":"男"}
             });
         </script>
     </head>
     <body>
         <input type="text" name="txt" id="txt"/>
     </body>
 </html>

但是我还有一个疑问就是:为什么alert(object)输出值为 [object,Object],如果看到这篇文章的博友知道答案,还望不吝赐教。