0

HTML に 5x5 のテーブルがあります。つまり、各 tr には 5 つの td があり、各 td には 1 つの入力フィールドがあり、値を解析したいです。また、各 td にはデータ行とデータ列のデータ属性があります。これは私が思いついたものですが、バグがあります。どうすればよいですか?

tds = $('td')
marker = 0
thisSet = []
table = []

for td in tds
 thisRow = parseInt($(td).attr('data-row'))

 if marker == thisRow
  rc = "#{$(td).attr('data-row')}-#{$(td).attr('data-column')}"
  thisSet.push ({data: rc})
  console.log "marker:#{marker}, thisRow:#{thisRow}"
else
  rc = "#{$(td).attr('data-row')}-#{$(td).attr('data-column')}"
  thisSet.push ({data: rc})
  marker = thisRow 
  console.log "marker:#{marker}, thisRow:#{thisRow}"
  table.push thisSet
  thisSet = []

console.log table
console.log _.flatten(table).length

更新: OK、もう少し作業を進めました。5 行目ではなく 4 行が解析されました。何かが欠けていますが、4 行は正常に解析されます。

tds = $('td')
currentRow = 0
thisSet = []
table = []
for td in tds
  thisRow = parseInt($(td).attr('data-row'))
  rc = "#{$(td).attr('data-row')}-#{$(td).attr('data-column')}"

 if currentRow != thisRow
  table.push thisSet
  thisSet = []
  thisSet.push ({data: rc})
  currentRow = thisRow 
else
  thisSet.push ({data: rc})

console.log table
console.log _.flatten(table).length
4

1 に答える 1

1

私はこのようにするかもしれません:

table = []
table.push([]) for num in [0...5]

tds = $('td')

for td in tds
  row = parseInt(td.attr(data-row))
  col = parseInt(td.attr(data-column))

  table[row][col] = { data: "#{row}-#{col}" }

console.log table
于 2013-11-03T07:08:21.870 に答える