javascript - 将主体的数据属性值分配给变量

标签 javascript html wordpress

我正在使用 WordPress,我正在尝试使用自定义子主题中的functions.php 内的 JavaScript 获取数据属性的值并将其分配给变量。

页面呈现以下正文:

<body class="(...)" data-elementor-device-mode="desktop">

我有以下功能:

  var body = document.body;
  console.log(body);
  var bodyDevice = body.dataset.elementorDeviceMode;
  console.log(bodyDevice);

第一个 console.log 按预期返回正文,但第二个 console.log 仍返回“未定义”。

这一定是语法问题,因为以下内容

var bodyDevice = body.clientWidth;
console.log(bodyDevice);

将返回 body 元素的当前宽度(这解决了我的问题);无论如何,为什么是

var bodyDevice = body.dataset.elementorDeviceMode;
console.log(bodyDevice);

不返回“桌面”值?

最佳答案

Elementor 在初始化时通过 JavaScript 插入数据集,请参见第 271 行:https://github.com/elementor/elementor/blob/master/assets/dev/js/frontend/frontend.js

基本上,您的代码不会返回任何内容,因为它是在 Elementor 插入数据集之前执行的...因此,在执行代码时没有 data-elementor-device-mode .

尝试在页面加载后执行代码,例如:

window.onload = function() {
  var bodyDevice = document.body.dataset.elementorDeviceMode;
  console.log(bodyDevice);
};

关于javascript - 将主体的数据属性值分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60031037/

相关文章:

Wordpress add_rewrite_rule 给出 404

javascript - React,在 componentDidMount() 中执行 GET 操作后,无法显示 api 接收到的数据

显示当前和+1 日期的 Javascript 时间

javascript - 我无法在 javascript 循环期间使用 jQuery 附加元素

android - 如何防止 HTML 签名中的图像在 iphone 和 Android 上换行?

html - 将 CSS 类应用于同一标签的插件生成元素?

javascript - 根据值更改的时间将数组拆分为更小的数组

javascript - 将类添加到具有多个数据属性的多个元素

jquery - 展开此代码以检查 head 中的 HTML 注释是否包含字符串

php - 检查字符串以查找内部变量(PHP)