Вызов функции по клику на кнопку

376
29 июля 2017, 07:32

В эфире снова мои бестолковые вопросы, но все мы учимся, так что, пожалуйста, не вздыхайте и не делайте фейспалмы.

В общем, проблема такова, что при клике на кнопку, должно возвращатся значение, индекс той кнопки, на которую кликнули. А у меня возвращается все. Пожалуйста, хелп ми.

var list = document.getElementsByTagName('button'); 
 
function map(list, func) { 
  var f = func || function(list) {}; 
 
  for (var i = 0; i < list.length; i++) { 
    (f(list[i], i)); 
  } 
} 
 
function show(item, index) { 
  console.log(item + index + 'clicked'); 
} 
 
map(list, show);
<button onclick='map(list, show)'>Один</button> 
<button onclick='map(list,show)'>Два</button>

Answer 1

Так?

var list = document.getElementsByTagName('button'); 
function showThis(target){ 
    var index; 
    for(var i=0;i<list.length;i++){ 
        if(list[i] == target) index = i; 
    } 
    console.log(target + index + 'clicked'); 
}
<button onclick='showThis(this)'>Один</button> 
<button onclick='showThis(this)'>Два</button>

Answer 2

Array.prototype.map.call(document.querySelectorAll('button'),function(element,index){ 
  element.addEventListener('click',function(){ 
		console.log('button index ' + index) 
  },false) 
})
<button>Один</button> 
<button>Два</button>

Answer 3

var nodes = Array.prototype.slice.call(document.getElementsByTagName('button')); 
 
function showIndex(item) { 
    console.log(nodes.indexOf(item)); 
}
<button onclick="showIndex(this)">Один</button> 
<button onclick="showIndex(this)">Два</button> 
<button onclick="showIndex(this)">Три</button>

READ ALSO
Как сделать чтобы вернуло this[0]

Как сделать чтобы вернуло this[0]

Добрый день, мне нужно чтобы javascript вернул innerHTML 1ого элемента через функцию, но он почему-то это не делаетHTMLElement

276
Как получить новый объект без свойства?

Как получить новый объект без свойства?

Как отфильтровать объект по ключу?

364
Помогите достать элемент (javascript)

Помогите достать элемент (javascript)

Помогите, пожалуйста, никак не могу достать элементДля выделения одной кнопки другим цветом, крашу все в старый синий, а выбранную в тёмный

213