3 回答

TA貢獻1827條經驗 獲得超9個贊
td 級別的數據內聯
$('.key-cell').click(function() {
$("#popup").html($(this).next().html());
});
td {
border: solid 1px #cccccc;
padding: 5px;
}
.data-cell { display:none }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td class="key-cell">A</td><td class="data-cell">A: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</td>
<td class="key-cell">B</td><td class="data-cell">B: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</td>
<td class="key-cell">C</td><td class="data-cell">C: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</td>
<tr>
</table>
<div id="popup"></div>

TA貢獻1890條經驗 獲得超9個贊
一個想法:您可以為每個單元格提供一個帶有索引號的數據屬性,然后使用它來引用包含相關標記的數組:
var data = [
'<div>Contents 1</div>',
'<span>Contents 2</span>',
'Contents 3',
]
$('.data-cell').click(function() {
$("#popup").html(data[$(this).data('index')]);
});
td {
border: solid 1px #cccccc;
padding: 5px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td class="data-cell" data-index="0">A</td>
<td class="data-cell" data-index="1">B</td>
<td class="data-cell" data-index="2">C</td>
<tr>
</table>
<div id="popup"></div>
對此還有許多其他可能的解決方案,這可能取決于數據最初來源的確切情況。

TA貢獻1856條經驗 獲得超5個贊
好吧,這完全取決于您如何維護單擊的單元格與其應顯示的 HTML 之間的關系。有很多可能的答案。一種方法是維護要顯示的 HTML 地圖,每個地圖都鏈接到單元格 ID。
JS:
let map = {
'cell-1': '<p>Some HTML</p>',
'cell-2': '<p>Some other HTML!</p>'
/* etc */
}
$('body').on('click', '.data-cell', function() {
$("#popup").html(map[$(this).attr('id')]);
});
HTML:
<td class="data-cell" id=cell-1></td>
<td class="data-cell" id=cell-2></td>
<!-- etc -->
另請注意,我使用委托事件處理,而不是分別綁定到每個單元格。由于超出本問題范圍的各種原因,這是可取的,但這里有一些信息。
添加回答
舉報