В приведенном ниже примере мне нужно выбрать число в каждом 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);
Любая помощь в том, как использовать последний код выше с моим кодом для получения требуемых результатов или, если есть какой-либо другой способ, была бы полезной.