我有一个表行列表,这些tr由于某种原因(例如leg-1,leg-2)编号了类。已经可以在此上下文中删除具有相同给定类的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,两个tr =#leg;&#34; leg-3&#34;必须重命名为class =&#34; leg-2&#34;,以便它再次出现:
<tr class="leg-1"></tr>
<tr class="leg-1"></tr>
<tr class="leg-2"></tr>
<tr class="leg-2"></tr>
怎么办呢?
感谢您的帮助!
FIDDLE
答案 0 :(得分:1)
我扩展了现有的删除腿按钮处理程序代码,一旦删除了表的一部分,就为表行添加更新部分。我希望你能找到合适的代码。 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;
}
});
});