Вы можете передать текущий элемент вашей функции следующим образом:
onClick="/myFunction( this )"
Теперь вы можете читать из этого элемента, так как это первый аргумент, переданный в:
function myFunction( element ){ .. use element... }
let number = [];
function addNumber( element ) {
var num = element.innerHTML;
number.push(num);
console.log( number )
}
<table>
<tr>
<td onClick="addNumber(this)">1</td>
<td onClick="addNumber(this)">2</td>
<td onClick="addNumber(this)">3</td>
</tr>
<tr>
<td>4</td>
<td>5</td>
<td>6</td>
</tr>
</table>
Лично я бы подошел к этому немного иначе, так как добавление onClick
к вашим элементам в HTML смешивает интерактивные части (JS) с вашим чистым контентом,делая это громоздким, чтобы работать позже.Я бы подошел к этому чисто в моем сценарии, просто для разделения церкви и государства:
let numbers = [];
function addNumber( event ){
numbers.push( event.target.innerHTML );
// Here we will print the numbers array into the output id
document.getElementById( 'output' ).innerText = '[numbers]: ' + numbers.join( ', ' );
}
// document.querySelectorAll selects all <td> elements
// [ ... ] will spread them out into an Array, which will
// expose the forEach method of standard Arrays on your selection
[ ...document.querySelectorAll( 'td' ) ].forEach(td => {
// Here we will listen for the click events
td.addEventListener( 'click', addNumber );
})
<table>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>4</td>
<td>5</td>
<td>6</td>
</tr>
</table>
<p id="output"></p>