从HTML属性数组javascript获取键值

从HTML属性数组javascript获取键值,javascript,jquery,attr,Javascript,Jquery,Attr,这是HTML属性: data-plugin-options="{'Enabled': true, 'StartAt': 30, 'EndAt': 65}" javascript如何通过键名获取键值?例如'StartAt'值。元素中的数据总是一个字符串,但您可以解析它,没有问题 下面是一个如何做到这一点的示例 const myElement = document.querySelector('p') // here you have element object, you can use oth

这是HTML属性:

data-plugin-options="{'Enabled': true, 'StartAt': 30, 'EndAt': 65}"

javascript如何通过键名获取键值?例如'StartAt'值。

元素中的数据总是一个字符串,但您可以解析它,没有问题

下面是一个如何做到这一点的示例

const myElement = document.querySelector('p') // here you have element object, you can use other ways to get it
const dataString = myElement.dataset.pluginOptions // here you have string of the data
const formattedDataString = dataString.replace(/'/g, '"') // your JSON is wrongly formatted, this is fix
const dataObject = JSON.parse(formattedDataString) // where you have object of the data
const dataValue = dataObject.Enabled // where you have value by key
您的JSON格式也错误,它有单引号,而JSON规范需要双引号。您可以替换它,但如果内容包含双引号,这可能会带来额外的问题—它将使脚本崩溃。我建议查看JSON生成,如果可能的话,将其更改为标准


希望这有帮助,请参阅下面的代码。我们知道singleQuote在解析JSON时会给您一个错误。所以我用双引号代替它

$(文档).ready(函数(){
var d=$(“#数据”).attr('data-plugin-options');
d=d.替换(/“/g,”);
var parsedData=JSON.parse(d);
log(parsedData.StartAt);
});


一些文本…

它的可能重复给了我一个错误:SyntaxError:JSON.parse:JSON数据的第1行第1列出现意外字符“对不起,我现在测试了它并修改了代码。但至少在Firefox中存在的问题是,您的JSON字符串不符合规范。在JSON中,属性周围必须有双引号,这里是单引号。谢谢,但由于未定义“pluginOptions”,因此将打印错误。您至少可以粘贴完整的元素吗?必须修改第一行以查找您的元素,否则它将不起作用。如果使用jQuery,您应该只使用
.data
函数,而不是
.attr('data-