Получить HTML сущность символьного символа в jQuery - PullRequest
0 голосов
/ 23 марта 2020

Если в квадрате есть символ root, мне нравится окрашивать его в зеленый цвет. Итак, у меня есть что-то вроде этого:

<div class=”cell”>foo</div>
<div class=”cell”>bar</div>
<div class=”cell”>&radic;</div>
<div class=”cell”>foo</div>
<div class=”cell”>&radic;</div>

Моя попытка с jQuery:

$(".value_spec_table_description_div_cs").each(function(){

    if ($(this).html() === "&radic;"){
        $(this).css("color" , "rgba(0,128,0,1.0)");
        }
    });

К сожалению, похоже html () не преобразует символ √ в HTML сущность снова, поэтому оператор никогда не возвращает true.

Я много пробовал, например:

var test = $("#table").html();

var html = $("<textarea/>").html(test).html();

alert(html);

Каждый специальный символ находится в сущности, если только root квадратный символ в &radic;. Как я могу решить это?

Ответы [ 2 ]

1 голос
/ 23 марта 2020

Как то, что сказал @Quentin. jQuery видит только визуализированный символ '√', а не '&radic;'. Либо вы сравниваете его с отображаемым символом, либо он эквивалентен юникоду '\u221A', например:

$('.cell').each(function () {
    if ($(this).text() === '\u221A') {
        $(this).css('color', 'rgba(0, 128, 0, 1.0)');
    }
});
0 голосов
/ 23 марта 2020

Браузеры нормализуют HTML, когда преобразуют его в DOM. Если не считать Ajax запроса на получение исходного кода страницы, написания пользовательского парсера, поиска HTML, который вас интересует, и сравнения с , вы на самом деле не можете этого сделать.

Лучше просто сравнить текст:

if ($(this).text() === "√"){
...