Во-первых, обратите внимание, что jQuery 1.4.4 очень устарел.Вы должны использовать как минимум 1.12.1, в идеале 3.3.1 (на момент этого вопроса).
Основная проблема с вашей логикой заключается в том, что вы используете val()
для элемента td
, которыйне имеет значения.Вы должны проверить text()
вместо этого.Учитывая форматирование текста, вам также необходимо удалить из него символы $
и ,
перед выполнением сравнения.
Также обратите внимание, что лучше применять классы к элементам для их стилизации, чтобыподдерживать разделение проблем.Таким образом, вы можете использовать addClass()
, и вы можете предоставить функцию для вызова этого метода, чтобы определить, должен ли класс быть добавлен или нет на основе текста в ячейке.
Наконец, обратите внимание, что в вопросе указано «более 10000», но ваш код проверяет более 1000.В любом случае, это простое изменение в логике.Попробуйте это:
$(document).ready(function() {
$('#table_id td.color').addClass(function() {
var total = $(this).text().replace(/[$,]/g, '');
return parseInt(total, 10) > 10000 ? 'foo' : null;
});
});
.foo {
color: #2E944B;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table class="table" id="table_id">
<tr>
<th></th>
<th>User ID</th>
<th>Stock</th>
<th>Company Name</th>
<th>Amount</th>
<th>Current Price</th>
<th>Holdings</th>
</tr>
<tr>
<td><b>Total</b></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td class="color">$101</td>
</tr>
<tr>
<td><b>Total</b></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td class="color">$1,001</td>
</tr>
<tr>
<td><b>Total</b></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td class="color">$10,001</td>
</tr>
<tr>
<td><b>Total</b></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td class="color">$100,001</td>
</tr>
</table>