我有一个表格行列表,由于某种原因,这些tr的编号类别已被编号(例如leg-1,leg-2)。在此上下文中已经可以删除具有相同给定类的tr。
删除后,我需要重命名其余的tr,这是我的问题。
例:
我有
<tr class="leg-1"></tr>
<tr class="leg-1"></tr>
<tr class="leg-2"></tr>
<tr class="leg-3"></tr>
<tr class="leg-3"></tr>
现在,我从此上下文中删除leg-2。所以剩下的是:
<tr class="leg-1"></tr>
<tr class="leg-1"></tr>
<tr class="leg-3"></tr>
<tr class="leg-3"></tr>
因此,一旦我删除了leg-2,两个具有class =“ leg-3”的tr都必须重命名为class =“ leg-2”,这样它才能再次出现:
<tr class="leg-1"></tr>
<tr class="leg-1"></tr>
<tr class="leg-2"></tr>
<tr class="leg-2"></tr>
如何才能做到这一点??
感谢您的帮助!
小提琴
http://jsfiddle.net/Lynkb22n/2/
最佳答案
一旦表的腿部被删除,我通过为表行添加更新部分来扩展您现有的删除腿按钮处理程序代码。希望您觉得代码还行。 Fiddle
顺便说一句,这是我第一次在jQuery中使用containing selector,所以我觉得这个问题很酷:-)
$(document).on("click", "#segment-table .delete_this_leg", function () {
var rows_to_delete = $(this).parent().parent().parent().attr('class').slice(-1);
$("tr.leg-" + rows_to_delete).remove();
var cntAbreiseSegments = $('.legX').length / 3;
if (cntAbreiseSegments < "2") {
$('#addSegment').show();
}
var legNro = 0;
//select all tr elements that which class attribute value
//contains text: 'leg-'
$('tr[class*="leg-"]').each(function () {
$elem = $(this);
var elemClass = $elem.attr("class");
//remove current classes
$elem.removeClass();
var legClasses = "";
//element has class divider
if (elemClass.indexOf('divider') > -1 ) {
legClasses = "divider ";
} //element has class legX, and is not divider
else if (elemClass.indexOf('legX') > -1 ) {
legClasses = "legX ";
} else {//the row with leg text visible
var text = "leg-" + legNro;
$elem.find("b").html(text);
}
legClasses = legClasses + " leg-" + legNro;
//add updated classes
$elem.addClass(legClasses);
//add by one legNro if divider is found
if (elemClass.indexOf('divider') > -1 ) {
legNro += 1;
}
});
});
关于javascript - jQuery-重命名和重编号(计数)元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28188194/