我正在尝试添加一个功能,当用户点击“删除”时,
我需要帮助:
我可以更新数字行 但它目前所有行都会更新,即使没有任何内容。 有人可以告诉我如何只对填充的行进行此操作吗?例如, 当给定行没有数据时停止。
我更新给定行的所有ID的逻辑出了问题。 我想要做的是用相应的行号替换id名称末尾的数字(例如“numRow11”)。
$('#files_list tr').each(function(index) {
// update number order
$(this).find("td:first").text(index+1);
$(this).find("td").attr('id', $(this).attr('id').replace($(this).attr('id').match(/[\d\.]+/g), index));
if (index % 2 == 0)
$(this).removeClass().addClass('evenRow');
else
$(this).removeClass().addClass('oddRow');
});
答案 0 :(得分:0)
当一行没有数据时停止。
docs.jquery.com:
从每个函数中返回'false'会完全停止循环遍历所有元素(这就像使用带有正常循环的'break')。
答案 1 :(得分:0)
我不确定是否有查询表行的属性以查看它是否为空。但您可以向表行添加隐藏字段,并使用该字段确定该行是否为空。或者如果该行只有文本框来输入数据,您可以执行类似这样的操作
$('#files_list tr')。each(function(index){ var rowblank = true;
$(this).find("td").filter("input[type=text]").each(function() {
if ($(this).val().length > 0) {
rowblank = false;
return false;
}
});
if (rowblank === false) {
// update number order
$(this).find("td:first").text(index+1);
$(this).find("td").attr('id', $(this).attr('id').replace($(this).attr('id').match(/[\d\.]+/g), index));
if (index % 2 == 0)
$(this).removeClass().addClass('evenRow');
else
$(this).removeClass().addClass('oddRow');
}
});
答案 2 :(得分:0)
好的,感谢您的回复,但我最终想出了如何以另一种方式做到这一点。 对我来说,关键是能够根据数据确定有多少行有数据 我写的javascript库中的addRow click事件。一旦我有“hasdata”值 然后剩下的就是直截了当。我在下面发布它,以防将来对任何人都有帮助。
感谢您的帮助。
// current count of rows with data
var hasdata = element.multi_selector.count - 2;
$('#files_list tr').each(function(index) {
// THIS REPLACES THE ROW NUMBER ORDER
if (index < hasdata)
$(this).find("td:first").text(index+1);
else
$(this).find("td:first").text("");
// THIS RESETS THE ALTERNATING COLOR SCHEME
if (index % 2 == 0)
$(this).removeClass().addClass('evenRow');
else
$(this).removeClass().addClass('oddRow');
// THIS UPDATES THE ID VALUES - "someid1, someid2, someid3, someid4, etc"
$(this).find("td").each(function(){
var id = $(this).attr('id');
$(this).attr('id', id.replace(id.match(/[\d\.]+/g), index));
});