从 HTML 属性数组 javascript 获取键值
Get key value from a HTML attribute array javascript
这是 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 时会给你一个错误。所以我将其替换为 doubleQuote.
$(document).ready(function(){
var d=$("#data").attr('data-plugin-options');
d=d.replace(/'/g, '"');
var parsedData=JSON.parse(d);
console.log(parsedData.StartAt);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p id='data' data-plugin-options="{'Enabled': true, 'StartAt': 30, 'EndAt': 65}">Some text...</p>
这是 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 时会给你一个错误。所以我将其替换为 doubleQuote.
$(document).ready(function(){
var d=$("#data").attr('data-plugin-options');
d=d.replace(/'/g, '"');
var parsedData=JSON.parse(d);
console.log(parsedData.StartAt);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p id='data' data-plugin-options="{'Enabled': true, 'StartAt': 30, 'EndAt': 65}">Some text...</p>