我有一张桌子,里面有多个trs和tds。每个td都为一个特定字段包含一个不同的元素名称,无论是否存在文本,我都需要计算出来。如果在该字段中有文本,那么我希望禁用整个tr或理想情况下将其隐藏(因为有一个单选按钮,如果此td包含任何文本,我不希望用户单击)
下面的表格结构很抱歉,它是一个屏幕截图
我尝试了一些尝试来查找诸如具有文本的名称之类的元素,然后,如果具有文本,则隐藏其父对象,即整行,如果不做任何事情……这根本不做任何事情!
$(document).ready(function() {
$('[name^="ctl00_MainPlaceHolder_rpVacantTime_ct"]').each(function() {
if ($(this).text()) {
$(this).parent().hide();
} else {
alert($(this).text());
}
});
});
因此,理想情况下,我希望上面的内容能够找到所有具有相同名称的元素,然后隐藏其父行。
答案 0 :(得分:0)
只需查找标签,然后在满足条件的情况下将树向上遍历tr
。
您可以使用jquery“结尾为”选择器$=
来选择没有所有难看的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);
}
});