跳转到内容

component

此内容尚不支持你的语言。

<script>
class StarIcon extends HTMLElement {
connectedCallback() {
this.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="gold">
<path d="M12 2l3 7h7l-5.5 4.5 2 7L12 16l-6.5 4.5 2-7L2 9h7z"/>
</svg>`
}
}
customElements.define('star-icon', StarIcon)
</script>
<star-icon></star-icon>
<!-- for + innerHTML 拼字符串 -->
<ul id="list"></ul>
<script>
const data = ['苹果', '香蕉', '橙子']
const list = document.getElementById('list')
let html = ''
for (let item of data) {
html += `<li class="text-red-500">${item}</li>`
}
list.innerHTML = html
</script>
<!-- document.createElement -->
<ul id="list"></ul>
<script>
const data = ['苹果', '香蕉', '橙子']
const list = document.getElementById('list')
for (let item of data) {
const li = document.createElement('li')
li.textContent = item
li.className = 'text-blue-500'
list.appendChild(li)
}
</script>
<!-- <template> + 克隆 -->
<template id="item-template">
<li class="text-green-500"></li>
</template>
<ul id="list"></ul>
<script>
const data = ['苹果', '香蕉', '橙子']
const list = document.getElementById('list')
const template = document.getElementById('item-template')
for (let item of data) {
const clone = template.content.cloneNode(true)
clone.querySelector('li').textContent = item
list.appendChild(clone)
}
</script>
<!-- Web Components(封装循环逻辑) -->
<fruit-list></fruit-list>
<script>
class FruitList extends HTMLElement {
connectedCallback() {
const data = ['苹果', '香蕉', '橙子']
this.innerHTML = `
<ul>
${data.map(item => `<li class="text-purple-500">${item}</li>`).join('')}
</ul>
`
}
}
customElements.define('fruit-list', FruitList)
</script>
t1