gpt4 book ai didi

javascript - 如何在 hyperHTML 中动态更改标签

转载 作者:行者123 更新时间:2023-12-03 00:11:02 25 4
gpt4 key购买 nike

此代码不起作用。

const render = ({title, tag, values}) => {
bind(document.body)`
<h1>${title}</h1>
<div>
<${tag} data=${values}></${tag}>
</div>
`
}

render({title: "test", tag: "custom-elem1", values: {foo: "bar"}})

我可以使用 hyperHTML 动态更改标签吗?

最佳答案

您可能不喜欢这个答案,但,您不能。

原因是 hyperHTML 与任何其他类似的库一样,不支持字符串,它支持 DOM,并且在 DOM 世界中,即使您尝试,也无法更改标签名称.

var div = document.createElement('div');
div.tagName = 'P';
console.log(div.tagName); // "DIV"

您可以做的是返回您喜欢的元素。

const render = ({title, tag, values}) => {
const ref = document.body;
bind(ref)`
<h1>${title}</h1>
<div>${(() => {
switch tag:
case 'custom-elem1':
return wire(ref)`<custom-elem1 data=${values} />`;
case 'custom-elem2':
return wire(ref)`<custom-elem2 data=${values} />`;
case 'custom-elem3':
return wire(ref)`<custom-elem3 data=${values} />`;
})()
}</div>`;
};

在这种情况下,你可以做任何你想做的事,只要你不会尝试动态改变 DOM 标签的性质,因为即使 hyperHTML 也无法做到这一点👋

关于javascript - 如何在 hyperHTML 中动态更改标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54731078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com