解決済み - さまざまなアプローチ、thx みんな、私は再び学びました
HTML
<div class="container">
<div class="row">
<div class="c1">value1</div>
<div class="c2">value2</div>
<div class="c3><input type="number" value="3" class="i1" /></div>
</div>
<div class="row">
<div class="c1">value3</div>
<div class="c2">value4</div>
<div class="c3><input type="number" value="1" class="i1" /></div>
</div>
</div>
このコードを使用して値を抽出します (これを少し変更したバージョンはこちら) 。
var fields = [ 'c1', 'c2','i1'];
var data = [];
$('.container .row').each(function(i, tr) {
var row = {};
for (var f = 0; f < fields.length; ++f) {
row[fields[f]] = $(tr).find('.' + fields[f]).text()
}
data.push(row);
console.log(data);
});
これは完全に機能しますが、すべてのデータに対してではありません
c1 = 値1
c2 = 値 2
i1 =
c1 = 値3
c2 = 値4
i1 =
i1
は入力であるため、text()
必要な機能はありません。 の値を取得して追加するval()
方法を知りたいので、最終的な出力は次のようになります。i1
row[fields[f]]
(行 1) c1 = 値 1
c2 = 値 2
i1 = 3
(行 2)
c1 = 値3
c2 = 値4
i1 = 1
- 使用
if/else
しても機能しません。どちらか一方が機能します - 別の .find() を追加すると壊れます
- function(){} を使用しても機能しません。
- append または appendTo の使用が機能しない
- この場合、これは機能しないようです
これを行う方法があるはずです。誰が私を助けることができますか?