我有一张桌子。我试图获取我的脚本,遍历表格,查找td中是否有任何内容以及.hide()
我的按钮(如果有)或.show()
是否有& #39;吨
DEMO:Fiddle
然后点击按钮,循环浏览所有td并向其添加一个类。
// <!-- Whether or not to display the button depending if there is anything in each td -->
function Example(column) {
var rows = $("tr");
for (var i = 0; i < rows.length; i++) {
console.log('>><<>><<>><<>><<', column)
if ($(rows[i]).find("td" [column]).find(".unavailable").length > 0) {
$('.button-fill').hide();
} else {
$('.button-fill').show();
}
}
};
// <!-- Fill in the td -->
function bookAllDay() {
$('.button-fill').click(function () {
for (var i = 0; i < rows.length; i++) {
$(rows[i]).find("td" [column]).addClass("active");
}
});
};
for (var i = 5 - 1; i >= 1; i--) {
Example(i);
};
我在jsfiddle中添加了一个非常精简的表格和代码版本。因此,我从工作中抽取的例子中可能缺少一些东西,但我已经尽了最大努力。
谢谢!
答案 0 :(得分:3)
无需遍历表格。您可以使用:empty
伪选择器选择所有没有内容的td
。
:空:选择所有没有子元素的元素(包括文本节点)。
<强>代码:强>
// Check if there are empty td's
if ($('table').find('td:empty').length) {
// Show the button, if there is at least one empty td
$('.button-fill').show();
} else {
$('.button-fill').hide();
}
您还可以使用toggle
缩短代码。
$('.button-fill').toggle($('table').find('td:empty').length);
答案 1 :(得分:2)
更改为:
var row = $(rows[i]);
if (row.find("td"[column]).find(".unavailable").length > 0) {
row.find('.button-fill').addClass("hide");
} else {
row.find('.button-fill').removeClass("hide");
}
您选择当前匹配类的页面上的每个按钮。
答案 2 :(得分:1)
您可以使用.each()
迭代所有tr和td,:empty
选择器可用于检查是否有任何元素为空。请尝试以下工作代码:
$(document).ready(function (){
$('.button-fill').on("click", function() {
var i=$(this).parent().index();
if($(this).closest("tr").siblings().find("td:eq("+i+")").text()=="")
$(this).hide();
else
$(this).show();
});
<!-- Fill in the td -->
$('.button-fill').on("click", function() {
var i=$(this).parent().index();
$(this).closest("tr").siblings().find("td:eq("+i+")").addClass("active");
//});
});
});