Мой код получает несколько итогов, которые выглядят так:
var totals = { someInt:5, someFloat:7.555, someNumberIDoNotNeed:7};
Я хотел бы представить подмножество из них в таблице в виде (через шаблон нефрита). Моя идея состояла в том, чтобы поместить те, которые я хочу в объект, а затем пусть JSON.stringify сделает форматирование для меня. Я хотел, чтобы одно из значений было выделено полужирным шрифтом:
var needed = {};
needed["The int is"] = parseFloat(totals.someInt);
needed["The float is"] = "<b>" + parseFloat(totals.someFloat).toFixed(2).toString() + "</b>";
// get rid of the curly braces and add a space after the commas
var string = JSON.stringify(needed).replace(/[{}"]/gi, '').replace(/,/gi, ', ');
Тогда в моем нефритовом представлении:
td= string
Пересматривая это в инспекторе Chrome, строка, кажется, является тем, на что я надеялся:
<td>
"The int is:5, The float is:<b>7.55</b>"
</td>
Но браузер не соблюдает разметку. Я просто вижу фигурные скобки и b (<b>) на выходе. Я пробовал несколько вариантов форматирования вывода, но основная проблема с маркировкой остается неизменной. По достоинству оценят любые указатели в правильном направлении.
(Я попытался процитировать вывод, используя форматирование SO> quote, но на самом деле он уважает мою разметку, и этот вопрос появляется с выделенным жирным шрифтом, как я его хочу. Как-то SO это правильно, но я не могу!)
Раньше я никогда не слышал об Jade, но я быстро просмотрел их редактируемые демо и ссылки и заметил, что td= string
синтаксис вытесняет html-объекты, но td != string
нет.
Так что это ваша проблема. Вы хотите сохранить html неповрежденным в этом случае. Поэтому дайте td != string
попробовать.
toFixed()
возвращает String,.toFixed().toString()
является избыточным.