Как я могу написать переменную JavaScript внутри двойных кавычек в литерале шаблона?

У меня есть этот код:

        const newDiv = document.createElement('div');
        newDiv.innerHTML = `
            <button class='btn btn-download'>
                <span class='icon'>&#8681;</span>
                Download Subtitle
            </button>
            <span>as</span>
            <select id=`outputFormatSelectId`>
                <option value = "text">Text</option>
                <option value = "text-with-time">Text with Time</option>
                <option value = "json">JSON</option>
                <option value = "srt">SRT</option>
            </select>`;

Обратите внимание: <select id = "outputFormatSelectId"> имеет идентификатор outputFormatSelectId. На самом деле этот идентификатор представляет собой переменную, имеющую значение. Но я не понимаю, как можно поместить эту переменную внутрь **id= **

Хотя это не полный код, а только связанный с ним код. Если что-то неясно, пожалуйста, обратитесь ко мне за разъяснениями.

На самом деле мое замешательство связано с литералом шаблона. Хотя блок кода находится внутри литерала шаблона, как я могу использовать другую переменную в этом литерале шаблона?

В документации показано, как использовать переменные в литералах шаблона. В частности, обратите внимание на используемый синтаксис ${}. Например: <select id = "${outputFormatSelectId}">
David 29.08.2024 14:22

@Дэвид Да, я думаю, это хорошая идея.

Shibaji Biswas 29.08.2024 14:25

Этот вопрос похож на: Литералы шаблонов JavaScript ES6 — что они могут и чего не могут. Если вы считаете, что это другое, отредактируйте вопрос, поясните, чем он отличается и/или как ответы на этот вопрос не помогают решить вашу проблему.

pilchard 29.08.2024 15:07
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
3
54
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

ты имел в виду это?

    const outputFormatSelectId = "this-is-id";
    const newDiv = document.createElement('div');
    newDiv.innerHTML = `
        <button class='btn btn-download'>
            <span class='icon'>&#8681;</span>
            Download Subtitle
        </button>
        <span>as</span>
        <select id='${outputFormatSelectId}'>
            <option value = "text">Text</option>
            <option value = "text-with-time">Text with Time</option>
            <option value = "json">JSON</option>
            <option value = "srt">SRT</option>
        </select>`;

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

Ответ принят как подходящий

Как сказал @David в комментарии, вам нужно что-то вроде этого:

<select id = "${outputFormatSelectId}">

Итак, ваш исправленный код будет:

const newDiv = document.createElement('div');
newDiv.innerHTML = `
<button class='btn btn-download'>
    <span class='icon'>&#8681;</span>
    Download Subtitle
</button>
<span>as</span>
<select id = "${outputFormatSelectId}">
    <option value = "text">Text</option>
    <option value = "text-with-time">Text with Time</option>
    <option value = "json">JSON</option>
    <option value = "srt">SRT</option>
</select>`;

Используя ${outputFormatSelectId} в литерале шаблона, вы указываете JavaScript вычислить выражение внутри ${} и вставить его значение в строку.

Таким образом, если outputFormatSelectId является переменной, содержащей строковое значение (например, «mySelectId»), она будет вставлена ​​как значение атрибута id.

Другие вопросы по теме