คุณสามารถเขียนฟังก์ชั่นที่จะตั้งค่าการประกาศแยกต่างหากเพื่อไม่ให้เขียนทับการประกาศที่มีอยู่ซึ่งคุณไม่ได้ให้ไว้ สมมติว่าคุณมีรายการพารามิเตอร์ object ของการประกาศ:
const myStyles = {
'background-color': 'magenta',
'border': '10px dotted cyan',
'border-radius': '5px',
'box-sizing': 'border-box',
'color': 'yellow',
'display': 'inline-block',
'font-family': 'monospace',
'font-size': '20px',
'margin': '1em',
'padding': '1em'
};
คุณอาจเขียนฟังก์ชันที่มีลักษณะดังนี้:
function applyStyles (el, styles) {
for (const prop in styles) {
el.style.setProperty(prop, styles[prop]);
}
};
ซึ่งใช้เวลาelement
และobject
รายการคุณสมบัติของการประกาศสไตล์เพื่อใช้กับวัตถุนั้น นี่คือตัวอย่างการใช้งาน:
const p = document.createElement('p');
p.textContent = 'This is a paragraph.';
document.body.appendChild(p);
applyStyles(p, myStyles);
applyStyles(document.body, {'background-color': 'grey'});
// styles to apply
const myStyles = {
'background-color': 'magenta',
'border': '10px dotted cyan',
'border-radius': '5px',
'box-sizing': 'border-box',
'color': 'yellow',
'display': 'inline-block',
'font-family': 'monospace',
'font-size': '20px',
'margin': '1em',
'padding': '1em'
};
function applyStyles (el, styles) {
for (const prop in styles) {
el.style.setProperty(prop, styles[prop]);
}
};
// create example paragraph and append it to the page body
const p = document.createElement('p');
p.textContent = 'This is a paragraph.';
document.body.appendChild(p);
// when the paragraph is clicked, call the function, providing the
// paragraph and myStyles object as arguments
p.onclick = (ev) => {
applyStyles(p, myStyles);
}
// this time, target the page body and supply an object literal
applyStyles(document.body, {'background-color': 'grey'});
allMyStyle
ในตัวอย่างของคุณจะเป็นอย่างไร ในตอนแรกคุณจะมีรายการของตัวแปรเดี่ยว ...