onclick関数を使ってHTMLテーブルを作成して、行のキーと値を取得したいとしましたが、これまでのところonclick関数は動作していますが、どうすればこの問題を解決できますか?ありがとう。HTMLテーブルonClick関数がテーブルの行のキーと値を取得する
私はあなたが最初の行をクリックしたとき、それは、この形式のコンソールログの表示になりたかった。ここでは
{ "name":"Clark", "age":29};
は、私が思うに、私のコード
var table = document.getElementById("tableID");
if (table != null) {
for (var i = 0; i < table.rows.length; i++) {
table.rows[i].onclick = function() {
tableText(this);
};
}
}
function tableText(tableRow) {
var myJSON = JSON.stringify(tableRow);
console.log(myJSON);
}
<table align="center" id="tableID" border="1" style="cursor: pointer;">
<thead>
<tr>
<th hidden="hidden"></th>
<th>name</th>
<th>age</th>
</tr>
</thead>
<tbody>
<tr>
<td >Clark</td>
<td>29</td>
</tr>
<tr>
<td >Bruce</td>
<td>30</td>
</tr>
</tbody>
</table>
あなたはJSON.stringifyにDOM要素(すなわち、ホストオブジェクト)を渡している、あなたは確かにそれが動作するはずですか? [*循環参照があってもDOMノードをJSONにシリアル化する方法は?*](https://stackoverflow.com/questions/32377345/is-there-a-way-to-json-stringify-an-html- DOMオブジェクトのJavaScript)。 – RobG
こんにちは@RobGはあなたの返事に感謝します、私は間違った方向に行ったと思います。私の目標は、後でREST APIフレームワークを編集するために後で渡すことができるように、行オブジェクトonClick全体を取得することです。今はJSON形式でオブジェクトを取得したいだけです。あなたはそれを私に助けてくれますか?ありがとう –
TRの文字列化された(シリアル化された)バージョンは、[* outerHTML *](https://developer.mozilla.org/en-US/docs/Web/API/Element/outerHTML)になります。その後、文字列がHTMLパーサを使用してDOMオブジェクトに解析されます。この場合、JSONは間違ったツールだと思います。 – RobG