Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как для каждой ссылки поставить void (https://javascript.ru/forum/dom-window/62706-kak-dlya-kazhdojj-ssylki-postavit-void.html)

imedia 24.04.2016 21:23

Как для каждой ссылки поставить void
 
Я пытаюсь для каждой ссылки с определенным классом поставить атрибут void:javascript(0) и затем содержимое ссылки отправить аяксом на сервер
document.addEventListener("DOMContentLoaded",query_send);
 function query_send(){ 
var el = document.querySelector('.inner a');
el.forEach(function(item, i, el) {
  alert( i + ": " + item + " (массив:" + el + ")" );
});
el.setAttribute('href', 'javascript:void(0)')

var url = el.textContent;
el.addEventListener('click',function(){
alert(url)
$.ajax({
            url: '/server/fix_in_session.php',  
            type: "POST",         
            data:   ({url:url }),       
            cache: false,
            error: function (xhr, ajaxOptions, thrownError) {
               /*  alert(" write json item, Ajax error! " + xhr.status + " error =" + thrownError + " xhr.responseText = " + xhr.responseText );    */ 
            },
            success: function (data) {
               

            } 
    });


});
}

Что не так тут? TypeError: el.forEach is not a function

wizard2014 24.04.2016 22:20

Не нужно никаких void, просто перебери массив элементов
 
var elems = document.querySelectorAll('.inner a');
	
	for (var i = 0, length = elems.length; i < length; i++) {
		elems[i].addEventListener('click', function(e){
			e.preventDefault();
			
			sendAjax(this.href);
		});
	}
	
	function sendAjax(url) {
		$.ajax({
			url: '/server/fix_in_session.php',  
			type: "POST",         
			data: { url:url },       
			cache: false,
			error: function (xhr, ajaxOptions, thrownError) {
			   
			},
			success: function (data) {			   

			} 
		});	
	}


Часовой пояс GMT +3, время: 16:04.