Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中创建元素并向其传递参数?_Javascript_Html_Web Component - Fatal编程技术网

如何在javascript中创建元素并向其传递参数?

如何在javascript中创建元素并向其传递参数?,javascript,html,web-component,Javascript,Html,Web Component,在新的v1web组件规范中,您可以通过如下方式创建新元素 class gg extends HTMLElement { constructor(a) { super(); } } customElements.define('gg-gg', gg); 然后你可以创建一个新的实例,就像 <gg-gg></gg-gg> 甚至 document.createElement("gg-gg"); 但在最后一种方法中,如何将构造函数中的a的参数

在新的v1web组件规范中,您可以通过如下方式创建新元素

class gg extends HTMLElement {
    constructor(a) {
        super();
    }
}

customElements.define('gg-gg', gg);
然后你可以创建一个新的实例,就像

<gg-gg></gg-gg>
甚至

document.createElement("gg-gg");
但在最后一种方法中,如何将构造函数中的
a
的参数传递给
document.createElement(“gg gg”)
,您可以将第二个参数传递给
document.createElement()
,其中属性设置为
“是”
,在
构造函数中使用
设置超时()
调用变量标识符引用
super()
上的
.getAttribute()
,以获取
“is”
属性的值

gg类扩展了HtmleElement{
建造师(a){
const curr=super();
设置超时((el)=>{
log(JSON.parse(el.getAttribute(“is”))
},0,当前)
} 
}
自定义元素。定义('gg-gg',gg);
const g=document.createElement(“gg-gg”,“is”:JSON.stringify({“abc”:123}))
您可以在第二个参数处传递和对象到
文档。createElement()
其中属性设置为
“is”
,在
构造函数中使用
setTimeout()
调用
。对变量标识符引用
super()
使用
getAttribute()
获取
“is”属性的值

gg类扩展了HtmleElement{
建造师(a){
const curr=super();
设置超时((el)=>{
log(JSON.parse(el.getAttribute(“is”))
},0,当前)
} 
}
自定义元素。定义('gg-gg',gg);

const g=document.createElement(“gg-gg”,“is”:JSON.stringify({“abc”:123}))
您可以使用函数创建一个
表达式,其中默认参数用于设置
构造函数

constgcreate=(…道具)=>{
const gg=类扩展HtmleElement{
构造函数(a=道具){
控制台日志(a);
a、 查找(prop=>
typeof prop==“对象”
&&!Array.isArray(道具))
[“def”](789)
超级();
}
}
自定义元素。定义('gg-gg',gg);
返回文档.createElement(“gg gg”);
}
设g=gcreate(
//传递参数
“abc”
, 123
, [4,5,6]
,{def:(prop)=>console.log(prop)}
,空,无效0

);
您可以使用函数创建一个
表达式,其中默认参数用于设置
构造函数

constgcreate=(…道具)=>{
const gg=类扩展HtmleElement{
构造函数(a=道具){
控制台日志(a);
a、 查找(prop=>
typeof prop==“对象”
&&!Array.isArray(道具))
[“def”](789)
超级();
}
}
自定义元素。定义('gg-gg',gg);
返回文档.createElement(“gg gg”);
}
设g=gcreate(
//传递参数
“abc”
, 123
, [4,5,6]
,{def:(prop)=>console.log(prop)}
,空,无效0

);这里有另一种方法可以将参数加载到构造函数中。它通过加载临时有效载荷来工作

//参数
var-args;
//创建元素
var createElem=函数(元素、参数){
参数类型=='undefined'?参数={}:args=参数;
返回文档.createElement('gg-gg');
}
//定义自定义组件
定义('gg-gg',类扩展HtmleElement{
构造函数(){
超级();
console.log(args);
}
});
//论据
createElem('gg-gg'{
宽度:500,
身高:500,
});
//没有争论

createElem('gg-gg')这里有另一种方法可以将参数加载到构造函数中。它通过加载临时有效载荷来工作

//参数
var-args;
//创建元素
var createElem=函数(元素、参数){
参数类型=='undefined'?参数={}:args=参数;
返回文档.createElement('gg-gg');
}
//定义自定义组件
定义('gg-gg',类扩展HtmleElement{
构造函数(){
超级();
console.log(args);
}
});
//论据
createElem('gg-gg'{
宽度:500,
身高:500,
});
//没有争论


createElem('gg-gg')为什么?您可以通过添加另一组括号将参数传递给函数中包含的函数
myFunction(par,am)(ano,ther,param)
这与我的问题有什么关系?@omega预计何时使用参数?不可能。请改用另一种方法。为什么?您只需添加另一组括号即可将参数传递给函数中包含的函数
myFunction(par,am)(ano,ther,param)
这与我的问题有什么关系?@omega预计何时使用参数?不可能。请改用另一种方法。通过使用
connectedCallback(){alert(this.getAttribute('is'));}
可以避免超时,但这种方法似乎过于冗长,仅限于字符串。这真的是使用
createElement
传递参数的最佳方式吗?@omega“最佳”的定义是什么?类似于
document.createElement('gg-gg',{},1)a
将在构造函数中为1。这似乎是一种优雅而正式的方式,可以支持任何类型的数据参数。但是如果没有类似的东西,那么我想这样传递参数是不受支持的。不确定规范是否提供了该功能。另一种方法是创建一个函数,使用默认参数为
构造函数设置参数,调用创建
类的函数,可以调用
.createElement()
使用
connectedCallback(){alert(this.getAttribute('is'));}避免超时
但这种方式似乎过于冗长,仅限于字符串。这真的是使用
createElemen传递参数的最佳方式吗
document.createElement("gg-gg");