Я пытаюсь клонировать форму с вкладками. Каждый клонированный экземпляр имеет присвоенный номер. 1, 2 et c для каждого клона, приращение. Каждая вкладка клона имеет атрибут href, сгенерированный динамически.
ссылки имеют атрибуты href, подобные этому
<li class="active">
<a href="#enInfo" data-toggle="tab">Home</a>
</li>
<li>
<a href="#spInfo" data-toggle="tab">Inicio</a>
</li>
для div-ов панели вкладок, идентичные идентификаторы
<div class="tab-pane active" id="enInfo">English content</div>
<div class="tab-pane" id="spInfo">Contenido en espanol</div>
Я пытаюсь найти атрибут href каждого элемента (enInfo, spInfo) и сгенерировать идентичные идентификаторы для div «tab tab». Желаемый результат для клонированной формы должен быть (# enInfo2, # spInfo2) для первого клона, (# enInfo3, # spInfo3) для второго клона и т. Д.
<li class="active">
<a href="#enInfo2" data-toggle="tab">Home</a>
</li>
<li>
<a href="#spInfo2" data-toggle="tab">Inicio</a>
</li>
и
<div class="tab-pane active" id="enInfo2">English content</div>
<div class="tab-pane" id="spInfo2">Contenido en espanol</div>
Вот код
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.0/jquery.js"></script>
</head>
<body>
<div id="sections">
<div class="section">
<h6>New stream</h6>
<div class="tab-group">
<ul class="nav nav-tabs" role="tablist">
<li class="active"><a href="#enInfo" data-toggle="tab">Home</a></li>
<li> <a href="#spInfo" data-toggle="tab">About</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="enInfo">English content</div>
<div class="tab-pane" id="spInfo">Contenido en espanol</div>
</div>
</div>
<p><a href="#" class='remove'>Remove</a></p>
</div>
</div>
<p><a href="#" class='addsection'>Add</a></p>
<script type="text/javascript" >
//define template
var template = $('#sections .section:first').clone();
//define counter
var sectionsCount = 1;
//add new section
$('body').on('click', '.addsection', function() {
//increment
sectionsCount++;
//loop through each input
var section = template.clone().find('.tab-group').each(function(){
//set id to store the updated section number
//var newId = this.id + sectionsCount;
var newId = sectionsCount;
//update id parent
this.id = newId;
$(this).prev().text('New stream ' + newId);
$(this).parent().find('span').attr("id", + newId);
$(this).parent().find('a').attr("href", + newId);
}).end()
//inject new section
.appendTo('#sections');
return false;
});
//remove section
$('#sections').on('click', '.remove', function() {
//fade out section
$(this).parent().fadeOut(300, function(){
//remove parent element (main section)
$(this).parent().empty(); // $(this).parent().parent().empty();
return false;
});
return false;
});
</script>
</body>
</html>
Полагаю, мне нужно как-то l oop элементов, но я не знаю, как мои jQuery, Javascript навыки ограничены и даже после часы и часы испытаний, не могу заставить его работать.