This is my jQuery script so far:
JavaScript
x
27
27
1
$(document).ready(function() {
2
var table = $('#reagent').DataTable();
3
var alphabet = $('<nav aria-label="Page navigation" id="alphanav">');
4
5
$('<li class="clear active" /><a href="#">')
6
.data('letter', '')
7
.html('None')
8
.appendTo(alphabet);
9
10
for (var i = 0; i < 26; i++) {
11
var letter = String.fromCharCode(65 + i);
12
$('<li/>')
13
.data('letter', letter)
14
.html('<a href="#/">' + letter + '</a>')
15
.appendTo(alphabet);
16
}
17
18
alphabet.insertBefore(table.table().container());
19
alphabet.on('click', 'li', function() {
20
alphabet.find('.active').removeClass('active');
21
$(this).addClass('active');
22
23
_alphabetSearch = $(this).data('letter');
24
table.draw();
25
});
26
});
27
From that I have a list like this:
JavaScript
1
8
1
<nav aria-label="Page navigation" id="alphanav">
2
<li class="clear active">None</li>
3
<a href="#">None</a>
4
<li>
5
<a href="#/">A</a>
6
</li>
7
</nav>
8
How do I add a <ul>
right after <nav aria-label="Page navigation" id="alphanav">
and add </ul>
right before </nav>
?
I tried to use append
but it just added <ul></ul>
right after the first Nav
Advertisement
Answer
To fix this you can use the same methods of creating elements in jQuery as you already are. Simply create the ul
in a jQuery object, append that to <nav>
and then append your li
to the ul
you created. Something like the below. Note that I remove the datatable code as it wasn’t relevant to the issue.
JavaScript
1
18
18
1
$(document).ready(function() {
2
var $table = $('#reagent');
3
var $alphabet = $('<nav aria-label="Page navigation" id="alphanav">');
4
5
let $ul = $('<ul />').appendTo($alphabet);
6
let $li = $('<li class="clear active" />').data('letter', '').appendTo($ul);
7
$li.text('None');
8
9
for (var i = 0; i < 26; i++) {
10
var letter = String.fromCharCode(65 + i);
11
$('<li/>')
12
.data('letter', letter)
13
.html('<a href="#/">' + letter + '</a>')
14
.appendTo($ul);
15
}
16
17
$alphabet.insertBefore($table);
18
});
JavaScript
1
2
1
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
2
<table id="reagent"></table>