2015-01-07 3 views
1

Я хочу, чтобы таблица и ее ячейки заполнялись данными из MySQL.Невозможно передать переменную в качестве аргумента в функции onClick

В таблице много TD, которые имеют идентификатор.

Я хочу передать идентификатор ячейки для функции, так что я могу изменить его содержание:

document.getElementById(IndexedActionButton).innerHTML = '<input type="Button" name = "EditActionButton" id="EditActionButton" onClick="SaveUpdateToActionList(&quot;Cell_ID&quot;)" value="Edit Action" />'; 

function SaveUpdateToActionList(Cell) { 
    alert(Cell); 
    document.getElementById(Cell).innerHTML = 'Here'; 
} 

Когда я alert(Cell); отображается, я вижу, это посылает текст «Cell_ID», в то время как я хотел видеть данные ActionButton386.

Любая помощь приветствуется.

+0

Какая связь между элементом 'input' и' td' с идентификатором? –

+1

Кажется, что вы делаете именно так, как вы спрашивали. SaveUpdateToActionList (" Cell_ID ") вы передаете строку " Cell_ID " not ActionButton386 – Mike

ответ

0

Вы можете передать в элементу, щелкнул, установив OnClick скрипт для SaveUpdateToActionList(this);

Затем в теле SaveUpdateToActionList, Cell будет относиться к кнопке, которую только что нажали. Затем вы можете подойти к DOM, чтобы добраться до TD, к которому он принадлежит.

+0

Спасибо большое! Это решает мою проблему. Я буду изучать это и двигаться дальше. Благодарим вас за помощь. – user3357198

0

Вы можете попробовать это:

document.getElementById(IndexedActionButton).innerHTML = '<input type="Button" name =  "EditActionButton" id="EditActionButton" onClick="SaveUpdateToActionList()" value="Edit Action" />'; 

    function SaveUpdateToActionList(event) { 
    alert(event.target.id); 
    document.getElementById(Cell).innerHTML = 'Here'; 
    } 

Но если я правильно понимаю, что вы пытаетесь сделать, вам следует иметь единственный у слушателя событий, который ловит bubling события из всех клеток, а что присоединение к OnClick к каждая клетка ....

0

Просто зарегистрировать прослушиватель событий отдельно от указания innerHTML свойства:

Document.getElementById(IndexedActionButton).addEventListener('onclick', SaveUpdateToActionList); 

SaveUpdateToActionList будет вызываться с объектом события в качестве первого аргумента. Вы можете получить доступ к элементу, который был нажат, установив свойство event.target. Для получения дополнительной информации проверьте MDN - addEventListener документация

Смежные вопросы