在迭代某些表格單元格數據時,我構建了一個包含任何元素的數組。第一次迭代只是封裝在一些<span>
標籤找到的文本,而隨後的那些添加了一堆其他樣式,如下圖所示:構建具有可讀性和維護性的HTML元素
var array = $('table').find('th').map(function(i){
if (i===0){
// This bit's OK
return '<span>' + $(this).text() + '</span>';
} else {
// This just looks horrible
return '<span style="width:' + $(this).outerWidth() + 'px; display:inline-block; position:absolute; right:' + w[i-1] + 'px">' + $(this).text() + '</span>';
}
}).get();
這一切工作正常,但它是可怕的 - 我想我已經看到了一種更加優雅的方式來構建HTML元素,並在之前的某個地方使用樣式。
任何人都可以提出一個更「維護友好」的方式來編寫else
聲明嗎?
編輯:使用CSS類不是一個真正的解決方案,因爲代碼應用基於其他計算的值。
使用類,而不是內聯CSS代碼 – andrew
@andrew我想這將減少代碼位,但功能也適用於寬度跨度,取決於找到的數據的寬度。 – verism
對於第一次迭代,您可以使用jQuery的['wrap'函數](http://api.jquery.com/wrap/)將您的元素封裝在''中。 – nstCactus