function add_tag(input) { post_id = input.closest('.post_container').id; tag_name = input.children[0].value; fetch(url_prefix + '/add_tag', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({ 'post_id': post_id, 'tag_name': tag_name, }) }).then(function(response) { if(!response.ok) { throw new Error('Error adding tag!'); } return response.json(); }).then(function(json) { if (!json.ok) { throw new Error('Could not add tag.') } let tag = document.createElement('span'); tag.innerText = tag_name; tag.className = 'tag'; let anchor = document.createElement('a'); anchor.href = "javascript:void(0)"; anchor.setAttribute('onlick', "remove_tag(this.closest('.tag'))"); anchor.innerText = '-'; tag.appendChild(anchor); input.closest('.tags').insertBefore(tag, input); }); } function remove_tag(tag) { post_id = tag.closest('.post_container').id; tag_name = tag.innerText.replace(/ .*/, ''); fetch(url_prefix + '/remove_tag', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({ 'post_id': post_id, 'tag_name': tag_name, }) }).then(function(response) { if(!response.ok) { throw new Error('Error removing tag!'); } return response.json(); }).then(function(json) { if (!json.ok) { throw new Error('Could not remove tag.') } tag.remove(); }); }