Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не понимаю как вставить html разметку (https://javascript.ru/forum/misc/79073-ne-ponimayu-kak-vstavit-html-razmetku.html)

Alexprom 13.12.2019 14:57

Не понимаю как вставить html разметку
 
Здравствуйте друзья!
Простите за наглость.
Не понимаю как вставить html разметку в код, искал примеры но не получилось.

Вот кода который формирует тело html письма.
c.find( '.wpcf7-submit' ).click(function() {

	
				var val = true;
				var quote = '';

				c.find( '.btQuoteItem' ).each(function() {
					var item_val = 0;
					var selected_name = '';
					
					$( this ).find( '.btQuoteText' ).each(function() {
						item_val = bt_parse_float( $( this ).val() );
					});
					
					$( this ).find( '.btQuoteSelect' ).find( '._msddli_.selected' ).each(function() {
						selected_name = $( this ).find( '.ddlabel' )[0].innerHTML;
						if ( $( this ).is( ':first-child' ) ) {
							selected_name = '';
						}
						item_val = bt_parse_float( $( this ).data( 'value' ) );
					});
					
					var is_slider = false;
					var slider_val;
					$( this ).find( '.btQuoteSlider' ).each(function() {
						var unit_price = bt_parse_float( $( this ).data( 'price' ) );
						// slider_val = bt_parse_float( $( this ).slider( 'value' ) );
						slider_val = bt_cc_get_slider_value ( $( this ) );
						item_val = slider_val * unit_price;
						is_slider = true;
					});

					$( this ).find( '.btQuoteSwitch' ).each(function() {
						if ( $( this ).hasClass( 'on' ) ) {
							item_val = bt_parse_float( $( this ).data( 'on' ) );
						} else {
							item_val = bt_parse_float( $( this ).data( 'off' ) );
						}
					});
					
					var label = $( this ).find( 'label' ).html();
					
					if ( is_slider ) {
						label = label + ' (' + slider_val + ') ' ;
					}						
					
					if ( selected_name != '' ) {
						selected_name = selected_name.replace( '<span class="description">', '/' );
						selected_name = selected_name.replace( '</span>', '' );
						label = label + ' (' + selected_name + ') ';
					}
						
					item_val = bt_cc_currency_format( c, item_val );
					
					if ( label !== undefined && label !== null ) {
						quote += label + ': ' + item_val + "\r\n"; // Имя инградиента : Сума
					}
					
				});
				
				quote += c.data( 'total_text' ) + ': ' + c.data( 'total' ) + "\r\n"; // Общая сума
				
				c.find( 'input[name=bt-cc-data]' ).val( quote );

			});



А вот в эту часть кода не могу вставить html разметку
if ( label !== undefined && label !== null ) {
						quote += label + ': ' + item_val + "\r\n";
					}

quote += label + ' Это имя
' + item_val + Это значение

И еще, если не затруднит, пожалуйста.
Если item_val равно 0, то не добавлять его в тело письма.
Заранее огромное человеческое спасибо!

рони 13.12.2019 18:31

Alexprom,
какая разметка в может быть в input?

Alexprom 13.12.2019 20:57

Цитата:

Сообщение от рони (Сообщение 517428)
Alexprom,
какая разметка в может быть в input?

Если вот так
if ( label !== undefined && label !== null ) {
quote += label + ( '<tr><td>' + item_val + '</td></tr>' ) + "\r\n";
}

То в html таблица только для значения "сума"
А вот как еще и label засунуть - уже не могу понять, да и найти примеры...

рони 13.12.2019 22:31

Alexprom,
замените элемент вывода на другой элемент div или p и тогда
$("div").html(quote)
;

Alexprom 13.12.2019 23:15

Цитата:

Сообщение от рони (Сообщение 517449)
Alexprom,
замените элемент вывода на другой элемент div или p и тогда
$("div").html(quote)
;

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

рони 13.12.2019 23:25

Alexprom,
не знаю что такое сумма , но можно так
$("div").html(sum > 0 ? quote : "")

Alexprom 14.12.2019 00:50

Цитата:

Сообщение от рони (Сообщение 517455)
Alexprom,
не знаю что такое сумма , но можно так
$("div").html(sum > 0 ? quote : "")

Я сделал вот так
if ( label !== undefined && label !== null ) {
	quote += ( '<div>'+ label + '</div><div>'+ item_val + ' р.</div>' ) + "\r\n";
}

Но как сделать по вашему примеру, мозга уже не хватает...
Вы можете подправить? Пожалуйста

рони 14.12.2019 01:00

Alexprom
$("div").html(c.data( 'total' ) > 0 ? quote : "")

Alexprom 14.12.2019 09:32

Цитата:

Сообщение от рони (Сообщение 517463)
Alexprom
$("div").html(c.data( 'total' ) > 0 ? quote : "")

Я вот так сделал, и в тело письма не попали как нулевые значение так и не нулевые...
if ( label !== undefined && label !== null ) {
	quote += ( '<div>'+ label + '</div><div>'+ item_val > 0 ? quote : "" + ' р.</div>' ) + "\r\n";
						
}


+ label + это имя параметра
+ item_val + это сума в рублях, если она не выбрана пользователем то ставиться 0 если пользователь выбрал - появляется сумма в рублях.
Я пытался прикрутить ваш вариант - не работает

рони 14.12.2019 09:50

Alexprom,
я писал про вывод всего, а вы про формирование.

if ( label !== undefined && label !== null && item_val > 0) {
	quote += ( '<div>'+ label + '</div><div>'+  item_val + ' р.</div>' ) + "<br>";
}


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