Если вы хотите получить список элементов (то есть, ваши цвета), вы не можете избежать петли или .each
. Вы могли бы, например:
$("table tr td:last-child").each(function(k,v) {
alert($(v).html());
});
или:
var colors = $("table tr td:last-child");
for(var x=0;x<colors.length;x++) {
alert($(colors[x]).html());
}
Но это не является хорошим метод, так как ваши клетки не могут реально получить идентифицированные (и т.д. нет id
или class
). В случае изменения структуры таблицы текущий javascript не может работать. Я рекомендую называть после извлекаемой информации, как это:
<table>
<tr>
<th>Element 1</th>
<td class="color">Red</td>
</tr>
<tr>
<th>Element 2</th>
<td class="color">Pink</td>
</tr>
</table>
и:
$("table tr td.color").each(function(k,v) {
alert($(v).html());
});
или:
var colors = $("table tr td.color");
for(var x=0;x<colors.length;x++) {
alert($(colors[x]).html());
}
UPDATE
Просто видел, как вы хотите, только первый цвет. Просто используйте следующее:
var color = $("table tr:first-child td:last-child").html();
Если вы действительно хотите, чтобы поиск по тексту в <th>
, проверить это:
var color = $("table tr th:contains('Element 1')").next().html();
Это не правильный способ для поиска элементов. Вы можете искать по числу дочерних элементов (и т. Д. ': Nth()') или ': last-child', или даже': contains (sometext) '. – 2014-09-06 17:48:10
Потому что я не хочу использовать .each в этом случае, как я могу изменить свой код с помощью ответа (nth, last-child или contains)? – fvcxvcxv