1

我想根据列中设置的标志值禁用对行的行单击其余行应该是可单击的,并且在某些列之间也是可单击的

具有 true 的前两行应该是不可点击的。但是,其余的行应该可以从第 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”的单元格时才使行可点击:

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 回答