我使用以下行创建与特定搜索词匹配的所有TD的数组。如果TD包含我的搜索字词,那么它就有#34; highlight
"添加。
以下工作正常到目前为止我唯一的问题是,如果一列不包含我的搜索词,我需要添加0(一列有或没有值,但在同一列中不能出现多次)。
有问题的列是2, 4, 6, 8, 10, 12
列,因此我的数组应始终包含6个值,如果其中一列不包含搜索词,则只显示0。
换句话说:我需要检查列是否包含带有类&#34的TD;突出显示"或不。
我的功能:
var arr = new Array();
$('.highlight').each(function() {
arr.push($(this).text());
});
示例HTML:
<table id="myTable">
<thead>
<tr>
<th></th>
<th class="mayContainHighlight"></th>
<th></th>
<th class="mayContainHighlight"></th>
<th></th>
<th class="mayContainHighlight"></th>
<th></th>
<th class="mayContainHighlight"></th>
<th></th>
<th class="mayContainHighlight"></th>
<th></th>
<th class="mayContainHighlight"></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td class="mayContainSearchTerm highlight">search term</td>
<td>5</td>
<td class="mayContainSearchTerm highlight">search term</td>
<td>7</td>
<td class="mayContainSearchTerm highlight">search term</td>
<td>3</td>
<td class="mayContainSearchTerm">other data</td>
<td>1</td>
<td class="mayContainSearchTerm highlight">search term</td>
<td>5</td>
<td class="mayContainSearchTerm">other data</td>
<td>1</td>
</tr>
// more TRs...
</tbody>
</table>
希望有人可以帮助我。非常感谢蒂姆。
答案 0 :(得分:5)
如果我理解你的意思,你在页面中没有任何其他TD(如果你需要识别你想要的那些选择)
你可以用这个编辑你的鳕鱼:
var arr = new Array();
$('TD').each(function() {
if( $(this).hasClass("highlight") )
arr.push($(this).text());
else
arr.push("0");
});
答案 1 :(得分:1)
通过使用对象,您可以使用key: value
存储,我认为您需要知道哪些列具有哪些值,如果不匹配,则默认为0
。此外,.each()
循环本身仅通过选择附加highlight
的那些来过滤:
<table>
<tr>
<td data-column="2">Column2 </td>
<td data-column="4">4th Column</td>
<td data-column="6">Sixth Test</td>
<td data-column="8">8More</td>
<td data-column="10">10th Col</td>
<td class="highlight" data-column="12">last Col</td>
</tr>
</table>
<script>
var obj = {
2: 0,
4: 0,
6: 0,
8: 0,
10: 0,
12: 0
};
$('td.highlight').each(function (index, element) {
obj[$(element).data('column')] = $(this).text();
});
//Prints 'last Col'
console.log( obj[12] );
</script>