Так что я попал в сложную ситуацию. У меня есть переменная, которая представляет данные таблицы:

row += '<td>' + c + '<button class="btn btn-success" id="' + callId + ' " onclick="handleCall()">Call</button>'  + '<button class="btn btn-danger" id="' + hangupId + ' " onclick="handleHangUp()">Hangup</button>' + '</td>' ;

Позже я добавлю это в мой стол. Теперь, когда я нажимаю кнопку вызова, я хочу получить идентификатор кнопки. Я пробовал так:

function handleClick() {
console.log(this);
}

Но это относится к объекту окна. Кто-нибудь может показать мне путь к достижению моей цели? Благодарность

-1
TungPham 29 Авг 2017 в 11:38

3 ответа

Лучший ответ

Просто передайте ID элемента в качестве параметра, чтобы сделать его простым,

Изменить,

onclick="handleCall()"

Чтобы ,

onclick="handleCall(this.id)"

this ссылается на соответствующую кнопку, которую нажимает пользователь.

Тогда,

function handleClick(id) {
    console.log(id);
}

Наконец, не используйте встроенные обработчики событий, так как с ними трудно работать в долгосрочной перспективе, используйте addEventListener.

9
Script47 29 Авг 2017 в 08:55

Есть два способа сделать это, вы можете сделать это через jQuery с помощью attr или если вы хотите остаться ванильным Javascript, тогда вы можете использовать .id.

jQuery см. Код ниже:

console.log(jQuery('element').attr('id'));

Javascript см. Код ниже:

console.log(element.id);
-1
Lewis Browne 29 Авг 2017 в 08:55
row += '<td>' + c + '<button class="btn btn-success" id="' + callId + ' " onclick="handleCall(this)">Call</button>'  + '<button class="btn btn-danger" id="' + hangupId + ' " onclick="handleHangUp()">Hangup</button>' + '</td>' ;

function handleClick(element) {
console.log(element);
//here you will have all element properties
}
0
Yogesh 29 Авг 2017 в 08:44