Есть ли способ создать массив с помощью jQuery / JS, который содержит все уникальные значения из таблицы, то есть без дубликатов? Кроме того, значения, которые меня будут интересовать, находятся только в TD с определенным классом (myClass
) + я хотел бы исключить "" и "" как недопустимые значения.
В приведенном ниже примере выходные данные должны быть [item1,item2,item3]
как единственные уникальные и допустимые значения.
Пример таблицы:
<table id="myTable">
<thead>
<tr>
<th class="myHeader">Cat 1</th>
<th>Vol 1</th>
<th class="myHeader">Cat 2</th>
<th>Vol 2</th>
<th class="myHeader">Cat 3</th>
<th>Vol 3</th>
//...
</tr>
</thead>
<tbody>
<tr>
<td class="myClass">item1</td><td>8</td><td class="myClass">item2</td><td>7</td><td class="myClass">item1</td><td>2</td>
</tr>
<tr>
<td class="myClass">item3</td><td>5</td><td class="myClass">item2</td><td>7</td><td class="myClass">item2</td><td>4</td>
</tr>
<tr>
<td class="myClass">item3</td><td>1</td><td class="myClass">item1</td><td>5</td><td class="myClass">item3</td><td>3</td>
</tr>
//...
</tbody>
</table>
Мой JS на данный момент (без дублирования):
var result = new Array();
$('td').each(function() {
if( ($(this).text() != '') && ($(this).text() != ' ') {
result.push(+($(this).text()));
}
});
alert(result);
Большое спасибо заранее, Тим.
3 ответа
Попробуй это
var result = new Array();
$('td').each(function() {
if( ($(this).text() != '') && ($(this).text() != ' ') {
if(result.indexOf($(this).text()) == -1){
result.push(+($(this).text()));
}
}
});
alert(result);
Вы можете использовать $.unique()
после:
result = $.unique(result);
Или уточняйте заранее:
if(result.indexOf(this.textContent) == -1){
//push
}
Ты можешь это сделать:
var result = new Array();
$('#myTable').find('td.myClass').each(function () {
if (result.indexOf($(this).text()) == -1) {
result.push($.trim($(this).text()));
}
});
console.log(result);
Скрипка
С $.inArray()
:
var result = [];
$('#myTable').find('td.myClass').each(function () {
if ($.inArray($(this).text(), result) == -1) {
result.push($.trim($(this).text()));
}
});
console.log(result);
С jQuery.inArray ()
Похожие вопросы
Новые вопросы
jquery
jQuery — это библиотека JavaScript. Также рассмотрите возможность добавления тега JavaScript. jQuery — это популярная кросс-браузерная библиотека JavaScript, которая упрощает обход объектной модели документа (DOM), обработку событий, анимацию и взаимодействие AJAX, сводя к минимуму расхождения между браузерами. Вопрос с тегом jQuery должен быть связан с jQuery, поэтому jQuery должен использоваться рассматриваемым кодом, и в вопросе должны быть как минимум элементы, связанные с использованием jQuery.