/ /テーブル行を配列に変換する[行IDごとに] - jquery

テーブル行を配列に変換する[行IDごとに] - jquery

以下は私のHTMLテーブル行です

私はtdが設定されている配列にそれを取得しようとしています contenteditable="true"

<tr id="row1" role="row" class="odd">
<td id="edit1" class="sorting_1">
<a id="editbtn_1" disabled=""><i class="fa fa-pencil-square-o fa-lg" aria-hidden="true" style="color:green"></i></a>
</td>
<td>1</td>
<td contenteditable="true">15310</td>
<td contenteditable="true">Abhishek Upadhyay</td>
<td id="dp1" contenteditable="true">01-09-2017</td>
<td id="dp1" contenteditable="true">30-10-2017</td>
<td contenteditable="true">Haryana</td>
<td contenteditable="true">Mairwa</td>
<td>31-10-2017</td>
</tr>

スタックオーバーフローポストのコードの下に、以下のようにコードがあります。

var id = this.id;
var recordId = id.replace("editbtn_", "").trim();
var row = $(this).parents().parents().attr("id");
row = "#tbl_Schedule_Update " + row;
var contents = $(row).find("td[contenteditable=true]");
var contentArray = [];
for (i = 0; i < contents.length; i++) {
contentArray[i] = contents[i].innerHTML;
}

すべての行IDを取得するまで、行の変数で、私はrow1を取得しています。

しかし、私は配列を期待しています。

var contents = $(row).find("td[contenteditable=true]");

しかし、それは未定義であり、コンソールログにはエラーはありません。

どうすれば配列に変換できますか?

回答:

回答№1は2

以下を使用してください:

$("#editbtn_1").click(function() {

var id = this.id;
var recordId = id.replace("editbtn_", "").trim();
var contents = $(this).closest("tr").find("td[contenteditable=true]");//get all contenteditable from that row
var contentArray = [];

$.each(contents,function(i,v){  //loop each one
contentArray.push($(v).text());//push the values to the array
});
console.log(contentArray)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tbody>
<tr id="row1" role="row" class="odd">
<td id="edit1" class="sorting_1">
<a id="editbtn_1" disabled=""><i class="fa fa-pencil-square-o fa-lg" aria-hidden="true" style="color:green"></i>edit</a>
</td>
<td>1</td>
<td contenteditable="true">15310</td>
<td contenteditable="true">Abhishek Upadhyay</td>
<td id="dp1" contenteditable="true">01-09-2017</td>
<td id="dp1" contenteditable="true">30-10-2017</td>
<td contenteditable="true">Haryana</td>
<td contenteditable="true">Mairwa</td>
<td>31-10-2017</td>
</tr>
</tbody></table>