在PHP中,我将$data_attributes数组放入一个HTML元素的data-additional-color-data attribute中:

$data_attributes = [
      312 => [
        'name' => 'Black',
        'hex' => '#000000',
        'src' => 'http://sitename/files/pms_colors/Black.png'
      ],
      313 => [
        'name' => 'Metallic',
        'hex' => '#D3D4DE',
        'src' => 'http://sitename/files/pms_colors/Metallic.png'
      ]
    ];
$entity_form['field_pms_colors']['#attributes']['data-additional-color-data'] = Json::encode($data_attributes);

我在浏览器的DevTools中看到,标记中的元素如下所示:

<div class="field--name-field-pms-colors" data-additional-color-data="{&quot;312&quot;:{&quot;name&quot;:&quot;Black&quot;,&quot;hex&quot;:&quot;#000000&quot;,&quot;src&quot;:&quot;http:\/\/sitename\/sites\/default\/files\/pms_colors\/Black.png&quot;},&quot;313&quot;:{&quot;name&quot;:&quot;Metallic Silver&quot;,&quot;hex&quot;:&quot;#D3D4DE&quot;,&quot;src&quot;:&quot;http:\/\/sitename\/sites\/default\/files\/pms_colors\/Metallic%20Silver.png&quot;}}"></div>

这是一个元素,其属性必须与其一起:

      312 => [
        'name' => 'Black',
        'hex' => '#000000',
        'src' => 'http://sitename/files/pms_colors/Black.png'
      ],

推荐答案

不需要进行特定的解码,因为在访问数据属性时,JavaScript将对此进行解码,如下所示:

// Get the HTML element of interest:
let element = document.querySelector("div.field--name-field-pms-colors");
// Read the data- attribute of interest:
let content = element.dataset.additionalColorData;
// Output it: no decoding of HTML entities needed -- there is no literal &quot;
console.log(content);
// Parse the JSON into an object
let obj = JSON.parse(content);
// Use the object...

Javascript相关问答推荐

如何在pixi js中画一条简单的线

我应该如何在此Angular 16应用程序中的方法中使用@ Hostspel?

promise .all()永不解决

TestCafe预计文本等于以下内容之一

将未等待的未处理的错误promise 转变为警告@ changeTicksAndRejections(由当时的抛出错误创建)

错误:(0,react__WEBPACK_IMPORTED_MODULE_1__.useSYS State)不是函数或其返回值不可迭代

在vercel throws上部署带有gunjs的sveltekit应用无法找到模块./' lib/文本编码'

在拖放时阻止文件打开

加载背景图像时同步旋转不显示的问题

Websocket错误—有一个或多个保留位开启:reserved1 = 1,reserved2 = 0,reserved3 = 0

Html文件和客户端存储的相关问题,有没有可能?

提交链接到AJAX数据结果的表单

try 使用javascript隐藏下拉 Select

为什么我的getAsFile()方法返回空?

如何将数据块添加到d3力有向图中?

使用VUE和SCSS的数字滚动动画(&;内容生成)

触发异步函数后不能显示数据

使用父标签中的Find函数查找元素

自动滚动功能在当前图像左侧显示上一张图像的一部分

与在编剧中具有动态价值的定位器交互