У меня возникла ситуация, когда я использую 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" не "<" Спасибо заранее.
Вы можете разрешить браузеру 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
если ваш
<p class="first-letter"><span>hii my content</span></p>
тогда
$(".first-letter").text().substring(0,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"