javascript - 如何避免 Section 标签中的相同 html 代码?
问题描述
我有 3 个部分,里面有相同的 html 代码,我怎样才能避免这种情况,有没有办法给他们一段 html 代码或作为 html、javascript...等的代码模板谢谢,关于问候。
<section class="Movie-list-1">
<h1> New movies </h1>
<!-- 10 divs here-->
</section>
<section class="Movie-list-2">
<h1> 4k movies </h1>
<!-- 10 divs here -->
</section>
<section class="Movie-list-3">
<h1> New movies </h1>
<!-- 10 divs here -->
</section>
解决方案
您可以创建一个并在带有插槽的自定义元素<template>
中重用它:
customElements.define('movie-list', class MovieList extends HTMLElement {
constructor() {
super();
this
.attachShadow({
mode: 'open'
})
.appendChild(document.getElementById('movie-list').content.cloneNode(true));
}
})
<template id="movie-list">
<section class="movie-list">
<h1><slot name="title">New movies</slot></h1>
<slot name="divs"></slot>
</section>
</template>
<movie-list>
<span slot="title">New Movies</span>
<div slot="divs">
<div>Foo</div>
<div>Bar</div>
<div>Baz</div>
</div>
</movie-list>
<movie-list>
<span slot="title">Top Movies</span>
<div slot="divs">
<div>Foo!!</div>
<div>Bar?!</div>
<div>Baz!?</div>
</div>
</movie-list>
这是它在 DOM 中的样子:
推荐阅读
- c# - 比较 SQL 和 SQLite DateTime EQUAL 值导致 False C#
- sql - 如何将多个查询导出到一个 Excel 工作表中
- php - 如何处理从支付门户重定向回 Laravel 网站
- django - Django 管理员在删除时显示对象 ID 而不是 __str__
- datepicker - 我的 Bootstrap-4 日期时间选择器无法在 Internet Explorer 上运行?是否有任何适用于 Bootstrap 4.0 的日期时间选择器?
- java - 如何只允许传递特定类型的格式化字符串?
- javascript - 在 Object.keys(obj) 中只能兼职
- html - HTML 电子邮件 - 防弹背景图片
- mysql - MySQL 8:改变存储过程的定义器
- javascript - 处理候选人的边缘问题