1

列に設定されたフラグ値に基づいて、行の行クリックを無効にします。残りの行は、特定の列の間でもクリック可能にする必要があります。

true を持つ最初の 2 行はクリックできないはずです。ただし、残りの行は列 1 ~ 5 からクリックできる必要があります。

ここに リンクがあります

4

4 に答える 4

3

.text()行の最後のセルを抽出してテストします。

$('#table tr').find('td:gt(0):lt(5)').on("click", function() {
    if ($(this).closest('tr').find('td:eq(5)').text() != "true") {
        alert("hello");
    }
})​;

http://jsfiddle.net/mblase75/mEbUG/2/

.filterまたは、 を呼び出す前に、望ましくないセルを除外できます.on("click")

$('#table tr').find('td:gt(0):lt(5)').filter(function() {
    return ($(this).closest('tr').find('td:eq(5)').text() != "true");
}).on('click', function() {
    alert("hello");
});​

http://jsfiddle.net/mblase75/mEbUG/12/

于 2012-08-29T19:35:50.797 に答える
2

私があなたを正しく理解していれば。「真」のセルがない行だけをクリック可能にしたいですか?または、「true」のセルではなく、各セルをクリック可能にしますか?

以下は、「true」という単語を含むセルがない場合にのみ行をクリック可能にする例です。

var hasTrueCell = function(cells) {

    for (var x = 0; x < cells.length; x++) {

        if (cells[x].innerHTML == "true")
            return true;

    }        

    return false;

}

var table = document.getElementById("table");
var rows = table.getElementsByTagName("TR");

for (var x = 0; x < rows.length; x++) {

    if (!hasTrueCell(rows[x].childNodes))
        rows[x].onclick = function() {         

            alert("hello");    

        }        

}
于 2012-08-29T19:45:35.733 に答える
1

編集済み(コメント後)

これでうまくいくはずです。

$('#table tr').filter(function() {
    return $(this).find('td:contains("true")').length === 0;
}).click(function() {
    alert("hello");
});​​  

デモ

参照

于 2012-08-29T19:40:36.677 に答える
0
$('#table tr').find('td:gt(0):lt(5)').click(function(){if($(this).text()!="true")alert(1)})​
于 2012-08-29T19:41:12.097 に答える