热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

自定义HTML标签和属性

我现在真的有点挣扎,我不知道这可能有多难。我在SO和YouTube上遵循了几个不同的教程和答案,但所有人都在做不同的事情,我现在有点卡住了。我想要的只是c

我现在真的有点挣扎,我不知道这可能有多难。我在 SO 和 YouTube 上遵循了几个不同的教程和答案,但所有人都在做不同的事情,我现在有点卡住了。

我想要的只是custom HTML-Tag和一些custom attributes

我用这种方法尝试过(JS)

class MyTrophy extends HTMLElement {
constructor() {
super();
var rarity = this.getAttribute("rarity");
console.log("rarity: " + rarity);
}
}
customElements.define("my-trophy", MyTrophy);

HTML


lorem ipsum


JS 文件加载在 HTML 文件的标题中

由于它也不是对象,因此我也无法记录my-trophy标签。计划在我的最终 dom 中有多个此类标签。

不管我尝试什么,我都无法获得稀有属性。data即使这是一个自定义 HTML 标记,我是否应该只在这种情况下使用-attributes?

参考:


  • https://www.youtube.com/watch?v=jNbOarODRzE

  • 我如何允许自定义标签和属性 html?

  • 如何为html创建自定义标签

  • https://www.html5rocks.com/en/tutorials/webcomponents/customelements/

有些方法根本不起作用(不再起作用?)(例如,它似乎registerElement不再可用,但现在有defineElement)。

我希望,如果我登录console.log(rarity),输出将是“银”。

对于问题的完整性:我正在尝试运行脚本 Google Chrome

谢谢你的帮助

回答

我运行了你的代码,它与 . 一起工作得很好 constructor ,但你可以试试connectedCallback。每当将元素添加到文档时,都会调用此方法。

在执行之前,请确保您的脚本在文档中运行。HTML/脚本自上而下运行。您的元素需要在呈现之前进行注册。

更新:请参阅Martin Braun 链接的“自定义元素”- Javascript.info文章以获得更好的理解。可以在此处查看官方 MDN 文档:“使用自定义元素”- MDN


class MyTrophy extends HTMLElement {
connectedCallback() {
const rarity = this.getAttribute('rarity');
console.log(`Rarity: ${rarity}`);
}
}
customElements.define('my-trophy', MyTrophy);

my-trophy {
font-size: 3em;
}
my-trophy[rarity="silver"] {
color: #777;
}









推荐阅读
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 重要知识点有:函数参数默许值、盈余参数、扩大运算符、new.target属性、块级函数、箭头函数以及尾挪用优化《深切明白ES6》笔记目次函数的默许参数在ES5中,我们给函数传参数, ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文详细介绍了如何使用JavaScript实现面部交换功能,包括基本原理和具体实现步骤。 ... [详细]
  • 本文将介绍如何在混合开发(Hybrid)应用中实现Native与HTML5的交互,包括基本概念、学习目标以及具体的实现步骤。 ... [详细]
  • 本文详细介绍了 HTML 中 a 标签的 href 属性的多种用法,包括实现超链接、锚点以及调用 JavaScript 方法。通过具体的示例和解释,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • 浅析python实现布隆过滤器及Redis中的缓存穿透原理_python
    本文带你了解了位图的实现,布隆过滤器的原理及Python中的使用,以及布隆过滤器如何应对Redis中的缓存穿透,相信你对布隆过滤 ... [详细]
  • 检查在所有可能的“?”替换中,给定的二进制字符串中是否出现子字符串“10”带 1 或 0 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • 本文详细解析了ASP.NET 2.0中的Callback机制,不仅介绍了基本的使用方法,还深入探讨了其背后的实现原理。通过对比Atlas框架,帮助读者更好地理解和应用这一机制。 ... [详细]
  • 2022年2月 微信小程序 app.json 配置详解:启用调试模式
    本文将详细介绍如何在微信小程序的 app.json 文件中启用调试模式(debug),并通过实际案例展示其配置方法和应用场景。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 使用Jsoup解析并遍历HTML文档时,该库能够高效地生成一个清晰、规范的解析树,即使源HTML文档存在格式问题。Jsoup具备强大的容错能力,能够处理多种异常情况,如未闭合的标签等,确保解析结果的准确性和完整性。 ... [详细]
author-avatar
手机用户2502908935
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有