1
スラッシュ区切り文字で3番目の列を新しい列に分割するコードを作成することができました。テーブルの列をn番目の区切り文字で新しい列に分割する方法
私がしなかったことは、n番目(つまり2番目)のオカレンスで分割されることでした。 私はインターネット上で同様の質問を見つけることができなかったので、私はここに投稿します。
次のように所望の成果は次のようになります。
すべてのヘルプは大歓迎です!
\t function split() {
\t var delimiter = "/";
\t var arr = [];
\t var highest = 0;
\t var columnIndex = "";
\t $('#tbl td:nth-child(3)').each(function() {
\t ColumnIndex = $(this).index();
\t var string = $(this).text();
\t var array = string.split(delimiter);
\t var nbrCharacter = (string.split(delimiter).length - 1) //COUNT OCCURENCES OF CHARACTER
\t var temp = (nbrCharacter > highest) ? highest++ : highest = highest;
\t arr.push(string.split(delimiter));
\t });
\t for (i = 0; i < highest; i++) { //ADD EMPTY COLUMNS
\t $('#tbl').find('tr').each(function() {
\t $(this).find('td').eq(ColumnIndex).after('<td></td>');
\t });
\t }
\t for (i = 0; i < arr.length; i++) { //POPULATE CELLS FROM ARRAY
\t var columnTracker = ColumnIndex
\t for (j = 0; j < arr[i].length; j++) {
\t $('#tbl').find('tr:eq(' + (i + 1) + ')').find('td:eq(' + columnTracker + ')').html(arr[i][j]);
\t columnTracker++
\t }
\t }
\t }
th {
height: 15px;
min-width: 30px;
border: 1px solid black;
font-size: 12px;
font-family: Courier, monospace;
padding: 2px 5px 2px 5px;
}
td {
height: 15px;
min-width: 30px;
border: 1px solid black;
font-size: 12px;
font-family: Courier, monospace;
padding: 2px 5px 2px 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="button" onclick="split()">Split</button>
<br>
<br>
<table id="tbl">
<thead>
<tr class="tbl-header">
<th>1</th>
<th>2</th>
<th>3</th>
<th>4</th>
</tr>
</thead>
<tbody>
<tr>
<td>A/B/C</td>
<td>B/C</td>
<td>C</td>
<td></td>
</tr>
<tr>
<td>A/B</td>
<td>B/C</td>
<td></td>
<td>D/E</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>A/B/C/D</td>
<td></td>
<td>C/D/E</td>
<td>D/E/F</td>
</tr>
<tr>
<td></td>
<td>B/C/D</td>
<td>C/D</td>
<td>D/E/F/G</td>
</tr>
<tr>
<td>A/B/C</td>
<td>B/C/D/E</td>
<td>C/D/E/F</td>
<td></td>
</tr>
</tbody>
</table>
VAR secondIndex = "A/B/C/D"。 secondIndex.indexOf( '/'、secondIndex.indexOf( '/')+ 1)。それ以降は部分文字列を取ることができます。 – Amit
..同じことをする方法がさらにあります。 https://stackoverflow.com/questions/7570276/javascript-indexof-how-to-get-specific-index?answertab=active#tab-top – Amit