の `parentNode`プロパティを読み取ることができません:は、私はHTMLのテーブルを作成する機能を持っている未定義
makeHTMLTable: function(array){
var table = document.createElement('table');
for (var i = 0; i < array.length; i++) {
var row = document.createElement('tr');
var cell = document.createElement('td');
cell.textContent = array[i];
row.appendChild(cell);
cell = document.createElement('td');
var msgButton = document.createElement('button');
msgButton.setAttribute("id", "msgButton" +i);
msgButton.textContent = "message";
msgButton.addEventListener("click", this.messageUser, false);
cell.appendChild(msgButton)
row.appendChild(cell);
table.appendChild(row);
}
return table;
},
私は、この機能を持っている:
messageUser: function(){
debugger;
this.parentNode.parentNode.remove();
unMatch();
},
私はmsgbuttonをクリックすると、私はそれを期待していますボタン自体と戻ってくるテキストの小さな行を含む行全体を削除します。 すなわち:
hello [msgbutton]
goodbye [msgbutton]
私がクリックした場合、[msgbutton]ハロー行に、それは次のようになります。
goodbye [msgbutton]
これまでのところ、この:this.parentNode.parentNode.remove();
が戻っています未定義。
EDIT:
は、私はあなたは「messageUser」機能ではなく、HTML要素を保持するオブジェクトを呼び出すようにしようとしている()配列
retrieveMatches: function(){
var tableResult = this.makeHTMLMatchesTable(this.fetchMatches(object));
var matches = document.getElementById('matches')
matches.parentNode.insertBefore(tableResult, matches);
},
オブジェクト「テーブル」を返す前に、上記の機能を置くことができることを再現するように見えることはできません - > https://jsfiddle.net/1nhm2c4k/ – adeneo
@adeneo含まれるように編集をしました –
から 'obj.makeHTMLMatchesTable'と' obj.fetchMatches'を表示できますか? – Hydro