Выбор чисел только в div с другими символами, используя jQuery - PullRequest
0 голосов
/ 21 февраля 2020

В приведенном ниже примере мне нужно выбрать число в каждом div, чтобы отобразить соответствующее сообщение с цветовой кодировкой.

<div class="result_a">
  <label> A number </label>

  4
</div>

<div class="result_b">

  <label> B number </label>
  0
</div>

<div class="result_c">

  <label> C number </label>
  1
</div>

Использование приведенного ниже кода работает, только если в каждом div нет ничего, кроме номера , Должен быть способ сначала убрать все, кроме числа в каждом div, прежде чем выбрать число, но я пока не мог найти такой способ.

jQuery:

$(" [class^='result_'] ").each(function() {
  var count = $(this).text();
  var dh = $(this),
        dhn = dh.attr("class").match(/result_(.*)/)[1];
  var aa = '0';
  var msg = '0';
  if (count < 1) {
    var aa = ('green');
    var msg = (' Your ' + dhn + ' is very good');
  } else if (count >= 1 && count < 3) {
    var aa = ('blue');
    var msg = (' Your ' + dhn + ' is bad');
  } else if (count >= 3) {
    var aa = ('red');
    var msg = (' Your ' + dhn + ' is very bad');
  } else {
    var aa = ('');
  }
 $(this).removeClass('red green blue').addClass(aa).text(count + msg);
});

Возможно, я смогу применить применяемый метод здесь (скопировано ниже), но не уверен, как использовать это для моей упомянутой необходимости (просто выберите номер в каждом div и примените выше jQuery).

function autospan() {
    var exp = /-?[\d.]+/g;

    $('*:not(script, style, textarea)').contents().each(function() {
        if (this.nodeType == Node.TEXT_NODE) {
            var textNode = $(this);
            var span = $('<span/>').text(this.nodeValue);
            span.html(span.html().replace(exp, '<span class="foo">$&</span>'));
            textNode.replaceWith(span);
        }
    });
}

$(autospan);

Любая помощь в том, как использовать последний код выше с моим кодом для получения требуемых результатов или, если есть какой-либо другой способ, была бы полезной.

1 Ответ

2 голосов
/ 21 февраля 2020

Это анализирует ваш элемент, чтобы получить только текст;

$(".result_c").clone().children().remove().end().text()

вам не нужен код, который вы указали

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...