I\'ve got a jQuery function that attempts to change the id, name and class attribute values of an element.
The id
The name cannot be changed because once you have modified the id, the selector in the subsequent expression (which uses the unmodified id) is selecting nothing :)
$("#" + id).attr('id', 'sel' + rowIndex);
$("#" + id).attr('name', 'sel' + rowIndex); // this can't ever work
Try chaining them together like this, to keep the reference to the current selection:
$("#" + id).attr('id', 'sel' + rowIndex)
.attr('name', 'sel' + rowIndex);
Alternatively, reorder the statements such that you change the name (and/or whatever else) before changing the id:
$("#" + id).attr('name', 'sel' + rowIndex);
$("#" + id).attr('id', 'sel' + rowIndex);
You can also assign the selection to a variable:
var $el = $("#" + id);
$el.attr("id", 'sel' + rowIndex);
...