Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Написание HTML кода в несколько строк (https://javascript.ru/forum/css-html/72682-napisanie-html-koda-v-neskolko-strok.html)

Валерия_05 18.02.2018 16:55

Написание HTML кода в несколько строк
 
Всем привет!
Ребят, подскажите, можно ли сделать перенос на несколько строк?
Вот код
var myNewElement = document.createElement('div');
myNewElement.innerHTML = '<p>Текст1.</p><p>Текст2.</p>';

Он работает, всё хорошо, но в одну строку писать HTML как-то нечитаемо получается, тогда я сделала так
var myNewElement = document.createElement('div');
myNewElement.innerHTML = '<p>Текст1.</p>
<p>Текст2.</p>';

Так скрипт получается нерабочий. Ошибка из-за переноса строки.
Буду благодарна за любую помощь :thanks:

Я только начинаю изучать Javascript, извините, если вопрос кому-то показался слишком простым.

j0hnik 18.02.2018 16:58

var myNewElement = document.createElement('div');
myNewElement.innerHTML = '<p>Текст1.</p>\
<p>Текст2.</p>';

Валерия_05 18.02.2018 17:02

j0hnik, спасибо.
Скажите, а это во всех современных браузерах будет работать?

Aetae 18.02.2018 17:28

Валерия_05, так будет работать вообще во всех, а во всех современых будет работать вот так:
var myNewElement = document.createElement('div');
myNewElement.innerHTML = `<p>Текст1.</p>
<p>Текст2.</p>`;
:)

Валерия_05 18.02.2018 17:34

Aetae, j0hnik ребят, огромное спасибо!
Вы даже не представляете как помогли.
А то я уже устала выстраивать HTML в одну строку ))

j0hnik 18.02.2018 17:42

Валерия_05,
\ во всех
Шаблонные строки - `` в современных

Nexus 18.02.2018 19:21

Можно еще так:
var myNewElement = document.createElement('div');
myNewElement.innerHTML = '<p>Текст1.</p>' +
    '<p>Текст2.</p>';

Aetae 19.02.2018 00:49

Ну давайте все дедовские методы теперь перечислять:)
function multiline(source){
  source = source.toString();
  return source.slice(
    source.indexOf('/*') + 2,
    source.lastIndexOf('*/')
  )
}

var myNewElement = document.createElement('div');
myNewElement.innerHTML = multiline(function(){/*
  <p>Текст1.</p>
  <p>Текст2.</p>
*/});
<script type="tepmplate" id="text">
  <p>Текст1.</p>
  <p>Текст2.</p>
</script>

<script type="text/javascript">
  var myNewElement = document.createElement('div');
  myNewElement.innerHTML = text.innerHTML;
</script>

j0hnik 19.02.2018 01:43

безумие
var myNewElement = document.createElement('div');
		myNewElement.innerHTML = 
		['<p>Текст1.</p>',
		'<p>Текст2.</p>'].join('');

Валерия_05 19.02.2018 09:53

j0hnik, Aetae, мне больше всего понравился вот этот способ - ``
На первый взгляд вообще супер. Как я поняла, таким образом хоть всю HTML страницу оберни и больше никаких лишних телодвижений не требуется))) Это же удобно!
Или же не всё так гладко? Экранировать дополнительно нужно будет какие-то символы?

И мало ли знаете, где можно посмотреть в каких браузерах поддерживается такой вариант, направьте пожалуйста ссылкой на путь истинный.


Часовой пояс GMT +3, время: 12:53.