无法使用javascript表示法获取属性值

could not get property value using javascript notation

本文关键字:获取 属性 表示 javascript      更新时间:2024-01-11

我做这个

var routeId = $('#route option:selected').val();
console.log(routeId, routeId["id"]);

我得到了低于的结果

{"id":560,"name":"Coba wei","description":"f","is_deleted":0,"operator_id":31,"from_city_id":201,"to_city_id":46} undefined

我希望我能得到560,这是我的console.log()的第二个参数,但我没有定义。为什么会这样?如果我在这里这样做https://jsfiddle.net/hfhfug0b/,我可以得到id的值。

看起来routeId是JSON。如果你想把它转换成一个对象,你需要解析它:

var routeId = JSON.parse( $('#route option:selected').val() );
console.log(routeId, routeId["id"]);

从DOM读取的任何内容都是字符串。要将其用作JSON,必须使用JSON.parse()对其进行解析。

var routeId = JSON.parse($('#route option:selected').val());

此外,正如我在基于值答案中的属性键的选择选项中所建议的那样,您应该考虑使用data-*属性在HTML元素上存储自定义数据。