合并组件

This commit is contained in:
2023-10-02 22:28:55 +08:00
parent 9b23a7d18b
commit ff2f6c7e3c
1 changed files with 12 additions and 38 deletions

View File

@ -1,5 +1,5 @@
export function List({ innerText, textContent, onclick, children = [], dataset, classList = [], ...attributes }) {
const element = document.createElement('ul')
export function createElement({ innerText, textContent, onclick, children = [], dataset, classList = [], ...attributes }, tagName) {
const element = document.createElement(tagName)
for (const key in attributes) {
element.setAttribute(key, attributes[key])
}
@ -12,44 +12,18 @@ export function List({ innerText, textContent, onclick, children = [], dataset,
return element
}
export function ListItem({ innerText, textContent, onclick, children = [], dataset, classList = [], ...attributes }) {
const element = document.createElement('li')
for (const key in attributes) {
element.setAttribute(key, attributes[key])
}
element.classList.add(...classList)
if (innerText) element.innerText = innerText
if (textContent) element.textContent = textContent
if (onclick) element.onclick = onclick
if (dataset) Object.keys(dataset).forEach(key => element.dataset[key] = dataset[key])
if (children) children.forEach(child => element.appendChild(child))
return element
export function List(options) {
return createElement(options, 'ul')
}
export function Span({ innerText, textContent, onclick, children = [], dataset, classList = [], ...attributes }) {
const element = document.createElement('span')
for (const key in attributes) {
element.setAttribute(key, attributes[key])
}
element.classList.add(...classList)
if (innerText) element.innerText = innerText
if (textContent) element.textContent = textContent
if (onclick) element.onclick = onclick
if (dataset) Object.keys(dataset).forEach(key => element.dataset[key] = dataset[key])
if (children) children.forEach(child => element.appendChild(child))
return element
export function ListItem(options) {
return createElement(options, 'li')
}
export function Button({ innerText, textContent, onclick, children = [], dataset, classList = [], ...attributes }) {
const element = document.createElement('button')
for (const key in attributes) {
element.setAttribute(key, attributes[key])
}
element.classList.add(...classList)
if (innerText) element.innerText = innerText
if (textContent) element.textContent = textContent
if (onclick) element.onclick = onclick
if (dataset) Object.keys(dataset).forEach(key => element.dataset[key] = dataset[key])
if (children) children.forEach(child => element.appendChild(child))
return element
export function Span(options) {
return createElement(options, 'span')
}
export function Button(options) {
return createElement(options, 'button')
}