今天给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],如果看到这篇文章的博友知道答案,还望不吝赐教。