javascript 如何在innerHTML中使用三元条件运算符

kuarbcqp  于 12个月前  发布在  Java
关注(0)|答案(2)|浏览(121)

如何在element.innerHTML中正确使用三元运算符?

el.innerHTML = {
  `<span>title</span>
    ${menuOpened &&
       `<div>
         <span>opened</span>
       </div>`
    }
  `
}
zf9nrax1

zf9nrax11#

我认为你不能在一个字符串模板中使用另一个` inside字符串模板。我可能是错的,但我会用其他的报价来解决这个问题。

el = {};
menuOpened = true
el.innerHTML =
  `<span>title</span>
    ${menuOpened && '<div><span>opened</span></div>' }
  `;
  
console.log(el)
r1zhe5dt

r1zhe5dt2#

当然,你可以在一行模板中完成它,但是为了代码的可读性,你可以用经典的方式将它分成多个步骤,检查内联注解:

// Set your must have html
let html = `<span>title</span>`;

// Pre-set condition for example purpose
const menuOpened = true;

// Append html if condition is true
if(menuOpened) html += `<div><span>opened</span></div>`;

// Then inner html
// For now we'll just console log it
console.log(html);

但如果你有更复杂的html,你需要插入数据,而不是像你的情况下添加它,那么:

// Pre-set condition for example purpose
const menuOpened = true;

// Set code for menu
const menu = menuOpened ? `<div><span>opened</span></div>` : '';

// Set your html template
const html = `<div><span>title</span>${menu}</div>`;

// Then inner html
// For now we'll just console log it
console.log(html);

相关问题