I have following issue:
I have Jquery element Tournament.player with following data:
<div class="row mb-2">
<div class="col">
<input name="players[2][nickname]" type="text" class="form-control" id="p_nickname" placeholder="Nickname" value="Player3">
</div>
<div class="col p_region" style="">
<select name="players[2][region]" class="form-control">
<option value="" disabled="" selected="">Choose region</option>
</select>
</div>
<div class="col-2">
<button type="button" class="w-100 btn-sm btn-danger deleteRow">Delete</button>
</div>
</div>
I want to increment counter in name attribute of inner select and input elements.
That's what I tried so far:
var newPlayer = Tournament.player.clone().find('input, select').attr("name", function(i, name) {
return name.replace(/(\d+)/, function($0, $1) {
return +$1 + 1;
});
});
newPlayer.appendTo(".players");
It does what I need, but returns only select and input elements, like so:
<input name="players[3][nickname]" type="text" class="form-control" id="p_nickname" placeholder="Nickname" value="">
<select name="players[3][region]" class="form-control" disabled="">
<option value="" disabled="" selected="">Choose region</option>
</select>
What I do wrong? I want to get same element that I had before, but getting only part of it.
Big thanks in advance.
this.player = $(".player:last").clone() .find("input") .attr({value: ''}) .end();