我有一个包含各种值的标准表。相同的值可能出现在不同的TD中,但不在同一列中。
示例:
<table id="myTable">
<tr>
<td>text1</td>
<td>text2</td>
<td>text3</td>
</tr>
<tr>
<td>text4</td>
<td>text5</td>
<td>text6</td>
</tr>
<!--more TRs...-->
</table>
有没有办法可以使用jQuery检查某个列是否包含某个值,如果是,则返回1,否则返回0?
示例:
将此应用于上面的第二列并检查&#34; text2
&#34;它应该返回1;如果我检查&#34; text5
&#34;它也应该返回1;如果我检查&#34; text6
&#34;它应返回0,因为此列中不存在。
我正在考虑开始像:
$('#myTable td:nth-child(2)').each(function() {
//...
});
感谢您对此的任何帮助,蒂姆。
答案 0 :(得分:2)
像这样的东西
$.fn.colCheck = function(col, text) {
var c = Array.isArray(col) ? col : [col],
t = this,
a = [];
$.each(c, function(_, v){
a.push(
t.find('tr td').filter(function() {
return $(this).index() === (v-1) && $.trim($(this).text()) === text;
}).length
);
});
return a.length === 1 ? a[0] : a;
}
像
一样使用$('#myTable').colCheck([1,2,3], 'text5'); // pass array, return array [0,1,0]
$('#myTable').colCheck(2, 'text2'); // 1
将返回给定列中该文本的出现次数。
答案 1 :(得分:1)
<table id="myTable">
<tr>
<td>text1</td>
<td class="check">text2</td>
<td>text3</td>
</tr>
<tr>
<td>text4</td>
<td class="check">text5</td>
<td>text6</td>
</tr>
//more TRs...
</table>
和jquery:
function check()
{
var flag = 0;
$('#myTable td.check').each(function(){
if($(this).html() == '')
{
flag = 0;
return flag;
}
else
{
flag = 1;
}
})
return flag;
}
答案 2 :(得分:0)
function mycheck(what) {
var result = 0;
$( "#myTable td" ).each(function( index ) {
var myval = $( this ).text();
if ((index - 1) % 3 == 0 ) {
if (myval == what) {
result = 1; return result;
}
}
});
return result;
}