javascript - 将类添加到创建的元素
问题描述
我的函数的参数是一个函数。它应该创建一个元素,但我仍然应该能够使用参数添加属性details
。
例如:
const addElement = (details) => {
const element = document.createElement('div');
}
addElement(function() {
element.id = 'my-div'; // Not working since element is not defined
});
好吧,我试图将元素存储在一个对象中,以便能够在该函数之外使用它。
let element = {};
const displayVideo = (type, details) => {
element = document.createElement(type);
element.width = 200;
element.height = 200;
element.classList.add('my-class'); // <--- THE PROBLEM!
if (details) {
details();
}
document.querySelector('#layer').insertBefore(element, document.querySelector('#el'));
};
displayVideo('VIDEO', function () {
element.controls = true;
});
我的元素无法创建,因为element.classList.add('my-class');
我什至没有收到错误消息。如果我删除该行,它可以工作,但我仍然希望能够向该对象添加一个类。我怎样才能做到这一点?
解决方案
只需传入element
函数即可。由于您只是在编辑对象的属性,因此这不会导致引用与值错误。
const addElement = (details) => {
const element = document.createElement('div');
if (details) details(element);
return element;
}
const ele = addElement(function(element) {
element.id = 'my-div';
});
console.log(ele);
推荐阅读
- sqlite - 使用 Sqlite 在 Ionic3 中看不到我的结果,即使它识别行数
- python - 从电子邮件中提取和统计域地址邮件
- vba - MS Access vba密码保护word文档
- ruby-on-rails - rails 似乎使用“button_to”助手和“get”方法删除 URL 中的查询参数
- vue.js - vue.js如何在鼠标悬停时切换html标签显示
- c# - ASP.NET Web 控件下拉列表对象填充
- javascript - 使用 Google 登录时是否可以刷新页面 - 登录时?
- python - python函数的使用
- php - Laravel index.php 路由问题
- c# - WebSecurity 将 CurrentUserId 显示为 -1