編集可能なテーブルを取得し、テーブルをループしてすべてのエントリを取得したいと考えています。ただし、テーブルにはオプションがあり、入力フィールドで行を追加できます。テーブルをループするには、次のコードがあります。
function t2array() {
var erg = [];
$("tr").each(function (index) {
var row = {};
var test = ($(this).children().find('input').length > 0) ? (this).children().find('input') : $(this).children('td');
row['bla'] = ($(this).children().find('input').length > 0) ? test[0].val : test[0].textContent;
row['blub'] = ($(this).children().find('input').length > 0) ? test[1].val : test[1].textContent;
...etc...
erg.push(row);
});
}
入力の値のセレクターが正しくないことはわかっていますが、何をしようとしても、常に「未定義」または「関数ではありません」が返され、それを解決する方法がわかりません。
表は次のように非常に単純です。
<table>
<tr>
<td><input type="text" value="bla"></td>
<td><input type="text" value="blub"></td>
<td><input type="text" value="bling"></td>
</tr>
<tr>
<td>bla2</td>
<td>blub2</td>
<td>bling3</td>
</tr>
</table>
次のようにして、1 つの入力の値にアクセスできます。
var bla = $(this).children().find('input').val();
console.log(blab);
しかし、三項演算子で実行しようとしましたが失敗しました。何か案は?