Preface: I would suggest you handle this in the template, there are now two answers showing you how (here and here). (I don't do Django.) Beware that doing this in client-side code will cause the <div id="total"></div> to appear blank very briefly and then get filled in with the number. If that element is in view when the page loads, the users will see that flicker — even if they can't see exactly what it was that flickered (which can be irritating). Avoiding that by doing it in the Django view would probably better.
But re your client-side code:
div elements don't have a value, they have textContent and innerHTML (see this question's answers for details). But the contents of those div elements will have lots of things in them other than the numbers you're looking for. While you could isolate the number from the text (or retrieve it just from the b element within the div), those are both fragile solutions that will break if someone changes the template in seemingly-innocent ways.
If you really want to handle this with client-side code, store the values you want in data-* attributes on the div elements:
<div id="sch-books" class="h6 mb-1" data-count="{{ s_books.count }}">School copies - <b>{{ s_books.count }}</b></div>
<div id="gov-books" class="h6 mb-1" data-count="{{ g_books.count }}">Govt copies - <b>{{ g_books.count }}</b></div>
<div id="total"></div>
Then grab that data-* attribute:
$(document).ready(function() {
const sch = +$("#sch-books").attr("data-count");
const gov = +$("#gov-books").attr("data-count");
const total = sch + gov;
$("#total").text(`Total : ${total}`);
});
adddoes look promising.