Heim Web-Frontend js-Tutorial 基于jquery的合并table相同单元格的插件(精简版)_jquery

基于jquery的合并table相同单元格的插件(精简版)_jquery

May 16, 2016 pm 06:08 PM
table 单元格

效果如下

原表格:

col0 col1 col2 col3
SuZhou 11111 22222 SuZhouCity
SuZhou 33333 44444 SuZhouCity
SuZhou 55555 66666 SuZhouCity
ShangHai 77777 88888 ShangHaiCity
ShangHai uuuuu hhhhh ShangHaiCity
ShangHai ggggg ccccc ShangHaiCity
GuangZhou ttttt eeeee GuangZhouCity
GuangZhou ppppp qqqqq GuangZhouCity

处理之后的样子:

col0 col1 col2 col3
SuZhou 11111 22222 SuZhouCity
33333 44444
55555 66666
ShangHai 77777 88888 ShangHaiCity
uuuuu hhhhh
ggggg ccccc
GuangZhou ttttt eeeee GuangZhouCity
ppppp qqqqq

效果出来, 看上去比较简单, 下面先看下页面

复制代码 代码如下:




























































col0 col1 col2 col3
SuZhou 11111 22222 SuZhouCity
SuZhou 33333 44444 SuZhouCity
SuZhou 55555 66666 SuZhouCity
ShangHai 77777 88888 ShangHaiCity
ShangHai uuuuu hhhhh ShangHaiCity
ShangHai ggggg ccccc ShangHaiCity
GuangZhou ttttt eeeee GuangZhouCity
GuangZhou ppppp qqqqq GuangZhouCity


核心代码:
复制代码 代码如下:

// 这里写成了一个jquery插件的形式
$('#process').mergeCell({
// 目前只有cols这么一个配置项, 用数组表示列的索引,从0开始
// 然后根据指定列来处理(合并)相同内容单元格
cols: [0, 3]
});

下面看看这个小插件的完整代码:
复制代码 代码如下:

;(function($) {
// 看过jquery源码就可以发现$.fn就是$.prototype, 只是为了兼容早期版本的插件
// 才保留了jQuery.prototype这个形式
$.fn.mergeCell = function(options) {
return this.each(function() {
var cols = options.cols;
for ( var i = cols.length - 1; cols[i] != undefined; i--) {
// fixbug console调试
// console.debug(cols[i]);
mergeCell($(this), cols[i]);
}
dispose($(this));
});
};
// 如果对javascript的closure和scope概念比较清楚, 这是个插件内部使用的private方法
// 具体可以参考本人前一篇随笔里介绍的那本书
function mergeCell($table, colIndex) {
$table.data('col-content', ''); // 存放单元格内容
$table.data('col-rowspan', 1); // 存放计算的rowspan值 默认为1
$table.data('col-td', $()); // 存放发现的第一个与前一行比较结果不同td(jQuery封装过的), 默认一个"空"的jquery对象
$table.data('trNum', $('tbody tr', $table).length); // 要处理表格的总行数, 用于最后一行做特殊处理时进行判断之用
// 我们对每一行数据进行"扫面"处理 关键是定位col-td, 和其对应的rowspan
$('tbody tr', $table).each(function(index) {
// td:eq中的colIndex即列索引
var $td = $('td:eq(' + colIndex + ')', this);
// 取出单元格的当前内容
var currentContent = $td.html();
// 第一次时走此分支
if ($table.data('col-content') == '') {
$table.data('col-content', currentContent);
$table.data('col-td', $td);
} else {
// 上一行与当前行内容相同
if ($table.data('col-content') == currentContent) {
// 上一行与当前行内容相同则col-rowspan累加, 保存新值
var rowspan = $table.data('col-rowspan') + 1;
$table.data('col-rowspan', rowspan);
// 值得注意的是 如果用了$td.remove()就会对其他列的处理造成影响
$td.hide();
// 最后一行的情况比较特殊一点
// 比如最后2行 td中的内容是一样的, 那么到最后一行就应该把此时的col-td里保存的td设置rowspan
if (++index == $table.data('trNum'))
$table.data('col-td').attr('rowspan', $table.data('col-rowspan'));
} else { // 上一行与当前行内容不同
// col-rowspan默认为1, 如果统计出的col-rowspan没有变化, 不处理
if ($table.data('col-rowspan') != 1) {
$table.data('col-td').attr('rowspan', $table.data('col-rowspan'));
}
// 保存第一次出现不同内容的td, 和其内容, 重置col-rowspan
$table.data('col-td', $td);
$table.data('col-content', $td.html());
$table.data('col-rowspan', 1);
}
}
});
}
// 同样是个private函数 清理内存之用
function dispose($table) {
$table.removeData();
}
})(jQuery);

主要的说明在注释里应该都有了, 代码的确比较简单, 像有些地方还值得改进
•处理的table内容是从tbody开始查找的, 如果没有tbody, 那应该给出个更通用化的方案
•for ( var i = cols.length - 1; cols[i] != undefined; i--)...如果表格数据量大, 处理的列也比较多, 这里不进行优化会有造成浏览器线程阻塞的风险, 可以考虑用setTimeout
•其他什么值得改进的, 我想应该会不少的
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Excel hat ein Problem mit einem oder mehreren Formelverweisen gefunden: So beheben Sie es Excel hat ein Problem mit einem oder mehreren Formelverweisen gefunden: So beheben Sie es Apr 17, 2023 pm 06:58 PM

Verwenden eines Fehlerprüftools Eine der schnellsten Möglichkeiten, Fehler in Ihrer Excel-Tabelle zu finden, ist die Verwendung eines Fehlerprüftools. Wenn das Tool Fehler findet, können Sie diese beheben und erneut versuchen, die Datei zu speichern. Allerdings findet das Tool möglicherweise nicht alle Arten von Fehlern. Wenn das Tool zur Fehlerprüfung keine Fehler findet oder das Problem durch deren Behebung nicht behoben wird, müssen Sie eine der anderen unten aufgeführten Fehlerbehebungen ausprobieren. Um das Fehlerprüfungstool in Excel zu verwenden: Wählen Sie die Registerkarte Formeln. Klicken Sie auf das Fehlerprüfungstool. Wenn ein Fehler gefunden wird, werden im Tool Informationen zur Fehlerursache angezeigt. Wenn es nicht benötigt wird, beheben Sie den Fehler oder löschen Sie die Formel, die das Problem verursacht. Klicken Sie im Fehlerprüftool auf Weiter, um den nächsten Fehler anzuzeigen und den Vorgang zu wiederholen. Wenn nicht

Wie lege ich den Druckbereich in Google Sheets fest? Wie lege ich den Druckbereich in Google Sheets fest? May 08, 2023 pm 01:28 PM

So legen Sie den Druckbereich von Google Sheets in der Druckvorschau fest. Mit Google Sheets können Sie Tabellenkalkulationen mit drei verschiedenen Druckbereichen drucken. Sie können die gesamte Tabelle drucken, einschließlich jedes einzelnen von Ihnen erstellten Arbeitsblatts. Alternativ können Sie auch ein einzelnes Arbeitsblatt drucken. Schließlich können Sie nur einen Teil der von Ihnen ausgewählten Zellen drucken. Dies ist der kleinste Druckbereich, den Sie erstellen können, da Sie theoretisch einzelne Zellen zum Drucken auswählen könnten. Der einfachste Weg, es einzurichten, ist die Verwendung des integrierten Druckvorschaumenüs von Google Sheets. Sie können diesen Inhalt mit Google Sheets in einem Webbrowser auf Ihrem PC, Mac oder Chromebook anzeigen. Zum Einrichten von Google

So betten Sie ein PDF-Dokument in ein Excel-Arbeitsblatt ein So betten Sie ein PDF-Dokument in ein Excel-Arbeitsblatt ein May 28, 2023 am 09:17 AM

Normalerweise ist es notwendig, PDF-Dokumente in Excel-Arbeitsblätter einzufügen. Genau wie bei der Projektliste eines Unternehmens können wir Text- und Zeichendaten sofort an Excel-Zellen anhängen. Was aber, wenn Sie den Lösungsentwurf für ein bestimmtes Projekt an die entsprechende Datenzeile anhängen möchten? Nun, die Leute halten oft inne und denken nach. Manchmal funktioniert auch das Denken nicht, weil die Lösung nicht einfach ist. Lesen Sie diesen Artikel genauer, um zu erfahren, wie Sie ganz einfach mehrere PDF-Dokumente zusammen mit ganz bestimmten Datenzeilen in ein Excel-Arbeitsblatt einfügen. Beispielszenario In dem in diesem Artikel gezeigten Beispiel haben wir eine Spalte namens „ProductCategory“, die in jeder Zelle einen Projektnamen auflistet. Eine weitere Spalte ProductSpec

Was soll ich tun, wenn es zu viele verschiedene Zellformate gibt, die nicht kopiert werden können? Was soll ich tun, wenn es zu viele verschiedene Zellformate gibt, die nicht kopiert werden können? Mar 02, 2023 pm 02:46 PM

Lösung für das Problem, dass es zu viele verschiedene Zellformate gibt, die nicht kopiert werden können: 1. Öffnen Sie das Excel-Dokument und geben Sie dann den Inhalt verschiedener Formate in mehrere Zellen ein. 2. Suchen Sie die Schaltfläche „Format Painter“ in der oberen linken Ecke der Excel-Seite und klicken Sie dann auf die Option „Format Painter“. 3. Klicken Sie mit der linken Maustaste, um das Format auf ein einheitliches Format festzulegen.

So entfernen Sie Kommas aus Zahlen- und Textwerten in Excel So entfernen Sie Kommas aus Zahlen- und Textwerten in Excel Apr 17, 2023 pm 09:01 PM

Bei numerischen Werten und Textzeichenfolgen kann die Verwendung von Kommas an den falschen Stellen selbst für die größten Excel-Freaks wirklich nervig sein. Sie wissen vielleicht sogar, wie Sie Kommas loswerden, aber die Methode, die Sie kennen, kann für Sie zeitaufwändig sein. Egal welches Problem Sie haben, wenn es mit einem Komma an der falschen Stelle in Ihrem Excel-Arbeitsblatt zusammenhängt, können wir Ihnen eines sagen: Alle Ihre Probleme werden heute hier gelöst! Schauen Sie sich diesen Artikel genauer an, um zu erfahren, wie Sie mit möglichst einfachen Schritten Kommas aus Zahlen und Textwerten entfernen können. Ich wünsche Ihnen viel Spaß beim Lesen. Oh, und vergessen Sie nicht, uns zu sagen, welche Methode Ihnen am meisten ins Auge fällt! Abschnitt 1: So entfernen Sie Kommas aus numerischen Werten Wenn ein numerischer Wert ein Komma enthält, gibt es zwei mögliche Situationen:

So finden und löschen Sie verbundene Zellen in Excel So finden und löschen Sie verbundene Zellen in Excel Apr 20, 2023 pm 11:52 PM

So finden Sie verbundene Zellen in Excel unter Windows Bevor Sie verbundene Zellen aus Ihren Daten löschen können, müssen Sie sie alle finden. Dies geht ganz einfach mit dem Excel-Tool „Suchen und Ersetzen“. Zusammengeführte Zellen in Excel suchen: Markieren Sie die Zellen, in denen Sie zusammengeführte Zellen finden möchten. Um alle Zellen auszuwählen, klicken Sie in eine leere Stelle in der oberen linken Ecke der Tabelle oder drücken Sie Strg+A. Klicken Sie auf die Registerkarte „Startseite“. Klicken Sie auf das Symbol „Suchen und Auswählen“. Wählen Sie „Suchen“. Klicken Sie auf die Schaltfläche Optionen. Klicken Sie am Ende der FindWhat-Einstellungen auf Format. Klicken Sie auf der Registerkarte „Ausrichtung“ auf „Zellen zusammenführen“. Es sollte ein Häkchen und keine Zeile enthalten. Klicken Sie auf OK, um das Format zu bestätigen

So erstellen Sie einen Zufallszahlengenerator in Excel So erstellen Sie einen Zufallszahlengenerator in Excel Apr 14, 2023 am 09:46 AM

So verwenden Sie RANDBETWEEN zum Generieren von Zufallszahlen in Excel. Wenn Sie Zufallszahlen innerhalb eines bestimmten Bereichs generieren möchten, ist die Funktion RANDBETWEEN eine schnelle und einfache Möglichkeit, dies zu tun. Auf diese Weise können Sie zufällige Ganzzahlen zwischen zwei beliebigen Werten Ihrer Wahl generieren. Generieren Sie Zufallszahlen in Excel mit RANDBETWEEN: Klicken Sie auf die Zelle, in der die erste Zufallszahl erscheinen soll. Geben Sie =RANDBETWEEN(1.500) ein und ersetzen Sie „1“ durch die niedrigste Zufallszahl, die Sie generieren möchten, und „500“ durch

So verhindern Sie, dass Excel führende Nullen entfernt So verhindern Sie, dass Excel führende Nullen entfernt Feb 29, 2024 am 10:00 AM

Ist es frustrierend, führende Nullen automatisch aus Excel-Arbeitsmappen zu entfernen? Wenn Sie eine Zahl in eine Zelle eingeben, entfernt Excel häufig die führenden Nullen vor der Zahl. Standardmäßig werden Zelleneinträge ohne explizite Formatierung als numerische Werte behandelt. Führende Nullen gelten in Zahlenformaten im Allgemeinen als irrelevant und werden daher weggelassen. Darüber hinaus können führende Nullen bei bestimmten numerischen Operationen zu Problemen führen. Daher werden Nullen automatisch entfernt. In diesem Artikel erfahren Sie, wie Sie führende Nullen in Excel beibehalten, um sicherzustellen, dass die eingegebenen numerischen Daten wie Kontonummern, Postleitzahlen, Telefonnummern usw. im richtigen Format vorliegen. Wie kann man in Excel zulassen, dass vor Zahlen Nullen stehen? Sie können führende Nullen von Zahlen in einer Excel-Arbeitsmappe beibehalten. Dafür stehen mehrere Methoden zur Auswahl. Sie können die Zelle nach festlegen

See all articles