how is it possible to make html divs inline each time a new element is created using the .after() function in js , I current have a button that creates a new div, only problem is it creates it under the first div in my container and continues like this in a block layout rather than inline
js
JavaScript
x
20
20
1
$("button.add_item").on("click", function() {
2
let item_count = $('.container .compare_card').length;
3
$(".row:last").after(
4
` <div class="row form_row">
5
<div class="col mb-4">
6
<h5>Item</h5>
7
<div class="card form_card">
8
<div class="card-body compare_cardbody">
9
10
<textarea name="ingredients" id="" cols="30" rows="10"></textarea>
11
12
</div>
13
</div>
14
</div>
15
</div>
16
`
17
);
18
})
19
})
20
html
JavaScript
1
28
28
1
<div class="container">
2
<div class="row row-cols-1 row-cols-md-2 mx-auto">
3
<form action="{% url 'compare_ingredients' %}" method="post" id="compare">
4
{% csrf_token %}
5
<div class="row form_row">
6
<div class="col mb-4">
7
<h5>Item 1</h5>
8
<div class="card form_card">
9
<div class="card-body compare_cardbody">
10
<textarea name="ingredients" id="" cols="30" rows="10"></textarea>
11
</div>
12
</div>
13
</div>
14
<div class="col mb-4">
15
<h5>Item 2</h5>
16
<div class="card form_card">
17
<div class="card-body compare_cardbody">
18
<textarea name="ingredients" id="" cols="30" rows="10"></textarea>
19
</div>
20
</div>
21
</div>
22
</div>
23
<br>
24
<button type="submit" class="btn btn-info">Submit</button>
25
</form>
26
</div>
27
</div>
28
looks like this you can see the bottom 2 divs are the newly created elements using .after() in js:
Advertisement
Answer
You are adding a new row on each click. If you want a new column, you’ll need to check if you should be appending a column to an existing row or creating a new row and adding to that.
JavaScript
1
21
21
1
if ($("#compare > .row:last > .col").length === 2)
2
{
3
$("#compare").append('<div class="row form_row"></div>');
4
}
5
6
$("#compare > .row:last").append(
7
`
8
<div class="col mb-4">
9
<h5>Item</h5>
10
<div class="card form_card">
11
<div class="card-body compare_cardbody">
12
13
<textarea name="ingredients" id="" cols="30" rows="10"></textarea>
14
15
</div>
16
</div>
17
</div>
18
`
19
);
20
})
21