Занимаясь jQuery, я часто сталкиваюсь с неловкой ситуацией.Скажем, я хочу создать большой кусок HTML с jQuery-обернутым элементом где-то посередине.Я хочу иметь возможность использовать шаблонный литерал для выполнения HTML, а затем эффективно отбрасывать элемент, завернутый в jQuery, чтобы избежать написания большого количества кода JavaScript для построения каждого элемента по отдельности в дереве.
Например,скажем, я хотел вставить кнопку в описанной позиции:
const $btn = $(`<button>Click Me</button>`).click(() => { /* complex handler... */ });
const $ele = $(`<div><h1>Some content</h1><p>Press this button: [button should go here]</p></div>`);
Я мог бы кропотливо создать внешний div
, p
, добавить p
к div
и добавитьот button
до p
.Это выглядит как неуклюжий шаблон.
Вместо этого я мог бы добавить button
непосредственно к литералу шаблона:
<div><h1>Some content</h1><p>Press this button: <button>Click Me</button></p></div>
А затем find()
it и связать обработчики, которыеКстати, это выглядит немного лучше, но мне все равно придется дать моему button
уникальный id
или class
, чтобы иметь возможность find
, в зависимости от контекста.Это также не "цепочка" хорошо, как, например, выше, добавление find()
в конец моего const $ele = ..
оператора приведет к $ele
хранению button
, а не div
.Это нежелательно чаще, чем нет.
Итак, есть ли лучшее решение?