繁体   English   中英

禁用一个 <tr> 其中之一 <td> 包含任何值

[英]Disable a <tr> where one of its <td> contains any value

我有一张桌子,里面有多个trs和tds。 每个td都为一个特定字段包含一个不同的元素名称,无论是否存在文本,我都需要计算出来。 如果在该字段中有文本,那么我希望禁用整个tr或理想情况下将其从选择中隐藏(因为有一个单选按钮,如果此td包含任何文本,我不希望用户单击)

表构造在下面,很抱歉,它是一个屏幕截图

https://imgur.com/JpdsMff

我尝试了一些尝试来尝试查找具有文本的名称之类的元素,然后,如果它具有文本,则隐藏其父级,即整行,如果不执行任何操作……这根本不执行任何操作!

$(document).ready(function() {
    $('[name^="ctl00_MainPlaceHolder_rpVacantTime_ct"]').each(function() {
        if ($(this).text()) {
            $(this).parent().hide();
        } else {
            alert($(this).text());
        }
    });
});

因此,理想情况下,我希望上面的代码找到具有相同名称的所有元素,然后隐藏其父行。

只需查找标签,然后在满足条件的情况下沿树向上移至tr

您可以使用jquery“ ends with”选择器$=来选择没有所有难看的asp.net id的标签。

$("span[id$='lblReservationReason']").each(function(){
    if ($(this).text().length > 0){
        $(this).closest('tr').hide();
    }
});

编辑

要在排成一行时禁用广播,可以使用find返回树下

$("span[id$='lblReservationReason']").each(function(){
    if ($(this).text().length > 0){
        let radio = $(this).closest('tr')
                    .find('input[type="radio"][name="rbVacantTime"]');

        $(radio).prop('disabled', true);
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM