ng-bind-html получает первую букву содержимого html

0

У меня возникла ситуация, когда я использую ng-bind-html для привязки html. Я хотел бы получить первый символ html-содержимого, исключая теги html. Ниже приведен пример кода.

<span class="first-letter">{{firstLetter}}</span>
            <div id="myDiv" ng-CLoak data-ng-bind-html="trustAsHtml(data.ContentDescription)" class="{{currentFont}}"></div>

моя строка html будет выглядеть следующим образом:

<p><span>hii my content</span></p>
the starting and ending tags are un predictable.

я хотел бы получить первую букву "h" не "<" Спасибо заранее.

  • 0
    Я хотел бы получить первый характер HTML, я думаю, вы забыли добавить это в вопросе. Вы пробовали что-нибудь? Мы не знаем что? Где?
  • 0
    stackoverflow.com/questions/33978281/...
Показать ещё 2 комментария
Теги:
angular-filters

3 ответа

1
Лучший ответ

Вы можете разрешить браузеру html для вас использовать свойство textContent

function strip(html)
{
   var tmp = document.createElement("DIV");
   tmp.innerHTML = html;
   return tmp.textContent || tmp.innerText || "";
}

и поскольку вас интересует только эта первая буква, чем вам, вероятно, не нужен ng-bind-html :)

Если вы хотите выделить эту первую букву, используйте CSS: first-letter https://developer.mozilla.org/en-US/docs/Web/CSS/%3A%3Afirst-letter

  • 0
    Это angularjs.
  • 0
    @Jai Да, я знаю. И что? Функция использует только фрагмент dom, он никогда не добавлялся к реальному DOM, так что это совершенно нормально, даже в Angular
Показать ещё 1 комментарий
1

если ваш

<p class="first-letter"><span>hii my content</span></p>

тогда

$(".first-letter").text().substring(0,1)

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

1

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

var regex = /(<([^>]+)>)/ig
,   body = "<p><span>hii my content</span></p>"
,   result = body.replace(regex, "");
console.log(result[0]);

Использование jQuery

console.log($('<p><span>hii my content</span></p>').text()[0]);

Это даст вам "h"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню