以下は私の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>