首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在hyperHTML中动态更改标记

如何在hyperHTML中动态更改标记
EN

Stack Overflow用户
提问于 2019-02-17 07:29:01
回答 1查看 146关注 0票数 1

此代码不起作用。

代码语言:javascript
复制
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动态地更改标记吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-17 20:13:18

你可能不喜欢答案,但它是,不,,你不能。

原因是,与其他类似库一样,hyperHTML不能处理字符串,它可以使用DOM,而且在DOM世界中,即使尝试更改标记名称也不能更改。

代码语言:javascript
复制
var div = document.createElement('div');
div.tagName = 'P';
console.log(div.tagName); // "DIV"

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

代码语言:javascript
复制
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也无法做到这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54731078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档