jQuery:检查列是否包含特定值

时间:2014-04-12 09:27:01

标签: jquery arrays loops each

我有一个包含各种值的标准表。相同的值可能出现在不同的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() {
    //...
});

感谢您对此的任何帮助,蒂姆。

3 个答案:

答案 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;
}

FIDDLE

一样使用
$('#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;
    }