Используйте ваш код Я внес некоторые изменения, надеюсь, это не доставит неудобств:
var username = "username";
var message = "This is my message";
$('.link').click((e) => {
var divContext = $(e.target).parent();
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
divContext.find("li:last").after("<li></li>");
divContext.find("li:last").append(xmlhttp.responseText);
}
}
xmlhttp.open('GET', 'insert.php?username='+username+'&msg='+message, true);
xmlhttp.send();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="ajax">
<div>
<ul>
<li>list 1</li>
</ul>
<a href="" class="link">show</a>
</div>
<div>
<ul>
<li>Another list</li>
<li>Another list 2</li>
</ul>
<a href="" class="link">show</a>
</div>
</div>
1) Я заменил var btns = document.querySelectorAll('.link');
и btn.addEventListener('click', function(e){
с $('.link').click((e) => {
2) Если вы посмотрите на функцию щелчка, вы увидите эту строку var divContext = $ (e.target) .parent (); , $ (e.target) эквивалентно $ (this) в функции стрелки с jquery. Если вам не нравится функция стрелки, вы можете использовать ее следующим образом:
$('.link').click(function() {
var divContext = $(this).parent();
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
divContext.find("li:last").after("<li></li>");
divContext.find("li:last").append(xmlhttp.responseText);
}
}
xmlhttp.open('GET', 'insert.php?username='+username+'&msg='+message, true);
xmlhttp.send();
});