찾다
웹 프론트엔드JS 튜토리얼jquery(라이트 버전)_jquery를 기반으로 테이블의 동일한 셀을 병합하기 위한 플러그인

效果如下

原表格:

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

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

复主代码 代码如下:









머리>


















































테이블>

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

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

下side看看这个小插件的完整代码:
复主代码 代码如下:

;(function($) {
// jquery 소스 코드를 살펴본 후 $.fn이 $.prototype임을 알 수 있습니다. jQuery는 이전 버전의 플러그와의 호환성을 위해서만 유지됩니다. -in
// 프로토타입의 형태
$.fn.mergeCell = function(options) {
return this.each(function() {
var cols = options.cols;
for ( var i = cols.length - 1; cols[i] != 정의되지 않음; i--) {
// 콘솔 디버깅 수정
// console.debug(cols[i])
mergeCell($(this), cols [i]);
}
dispose($(this))
})
}// 확실히 이해했다면 JavaScript의 클로저와 범위 개념 중 내부적으로 사용되는 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와 해당 행 범위를 찾는 것입니다.
$('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()
// 마지막 줄의 상황은 조금 특별합니다
// 예를 들어 마지막 두 줄의 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);
}
}
})
}
// 메모리 정리 함수
function dispose($table) {
$table.removeData();
}
})(jQuery)


주요 지침 코드는 비교적 간단하지만 아직 개선이 필요한 부분이 있습니다
•처리할 테이블 내용은 tbody부터 검색됩니다. 경우에는 보다 일반적인 해결 방법이 제공되어야 합니다. 🎜 >•for ( var i = cols.length - 1; cols[i] != undefine; i--)... 테이블 데이터의 양이 많고 처리되는 열이 많은 경우 여기에서 최적화하지 못하면 다음이 발생합니다. 브라우저 문제 스레드 차단 위험이 있으므로 setTimeout 사용을 고려해 볼 수 있습니다
• 개선할 가치가 있는 다른 부분도 많고, 많이 있어야 한다고 생각합니다
col0 col1 col2 col3
쑤저우 11111 22222 쑤저우시
쑤저우 33333 44444 쑤저우시
쑤저우 55555 66666 쑤저우시
상하이 77777 88888 상하이시
상하이 uuuuu 오오오오오 상하이시
상하이 ggggg ccccc 상하이시
광저우 ttttt 아아아아 광저우시
광저우 ppppp qqqqq 광저우시
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
Excel 发现一个或多个公式引用存在问题:如何修复Excel 发现一个或多个公式引用存在问题:如何修复Apr 17, 2023 pm 06:58 PM

使用错误检查工具使用Excel电子表格查找错误的最快方法之一是使用错误检查工具。如果该工具发现任何错误,您可以更正它们并再次尝试保存文件。但是,该工具可能无法找到所有类型的错误。如果错误检查工具没有发现任何错误或修复它们不能解决问题,那么您需要尝试以下其他修复之一。要在Excel中使用错误检查工具:选择公式 选项卡。单击错误检查 工具。在发现错误时,有关错误原因的信息将出现在工具中。如果不需要,请修复错误或删除导致问题的公式。在错误检查工具中,单击下一步以查看下一个错误并重复该过程。当没

如何在 Google Sheets 中设置打印区域?如何在 Google Sheets 中设置打印区域?May 08, 2023 pm 01:28 PM

如何在打印预览中设置GoogleSheets打印区域Google表格允许您使用三个不同的打印区域打印电子表格。您可以选择打印整个电子表格,包括您创建的每个单独的工作表。或者,您可以选择打印单个工作表。最后,您只能打印您选择的部分单元格。这是您可以创建的最小打印区域,因为理论上您可以选择单个单元格进行打印。最简单的设置方法是使用内置的Google表格打印预览菜单。您可以在PC、Mac或Chromebook上的网络浏览器中使用Google表格查看此内容。要设置Google

不同单元格格式太多复制不了怎么办不同单元格格式太多复制不了怎么办Mar 02, 2023 pm 02:46 PM

不同单元格格式太多复制不了的解决办法:1、打开EXCEL文档,然后在几个单元格中输入不同格式的内容;2、在Excel页面的左上角找到“格式刷”按钮,然后单击“格式刷”选项;3、点击鼠标左键,将格式统一设置成一致的即可。

在 Excel 中如何查找并删除合并单元格在 Excel 中如何查找并删除合并单元格Apr 20, 2023 pm 11:52 PM

如何在Windows上的Excel中查找合并的单元格在从数据中删除合并的单元格之前,您需要全部找到它们。使用Excel的查找和替换工具很容易做到这一点。在Excel中查找合并的单元格:突出显示要在其中查找合并单元格的单元格。要选择所有单元格,请单击电子表格左上角的空白区域或按Ctrl+A。单击主页选项卡。单击查找和选择图标。选择查找。单击选项按钮。在FindWhat设置的末尾,单击Format。在对齐选项卡下,单击合并单元格。它应该包含一个复选标记而不是一行。单击确定以确认格式

如何从 Excel 中的数字值和文本值中删除逗号如何从 Excel 中的数字值和文本值中删除逗号Apr 17, 2023 pm 09:01 PM

在数值上,在文本字符串上,在错误的地方使用逗号确实会变得烦人,即使对于最大的Excel极客来说也是如此。您甚至可能知道如何摆脱逗号,但您知道的方法可能对您来说很耗时。好吧,无论您的问题是什么,如果它与您的Excel工作表中的错误位置的逗号有关,我们可以告诉您一件事,您所有的问题今天都会得到解决,就在这里!深入研究这篇文章,了解如何通过尽可能简单的步骤轻松去除数字和文本值中的逗号。希望你喜欢阅读。哦,别忘了告诉我们哪种方法最吸引你的眼球!第1节:如何从数值中删除逗号当数值包含逗号时,可能有两种情

如何在 Windows 11 上创建自定义电源计划如何在 Windows 11 上创建自定义电源计划Apr 28, 2023 am 11:34 AM

如何在Windows11上创建自定义电源计划自定义电源计划允许您确定Windows如何对不同情况作出反应。例如,如果您希望显示器在一段时间后关闭,但又不想让它进入睡眠状态,您可以创建一个自定义计划来执行此操作。在Windows11上创建自定义电源计划:打开开始菜单并键入控制面板。从搜索结果中选择控制面板。在控制面板中,将查看方式选项更改为大图标。接下来,选择电源选项。单击电源选项菜单中的创建电源计划选项。从提供的选项中选择您要使用的基本电源计划。在底部的计划名称字段中为其指定一个描述性名

如何在 Excel 中创建随机数生成器如何在 Excel 中创建随机数生成器Apr 14, 2023 am 09:46 AM

如何使用 RANDBETWEEN 在 Excel 中生成随机数如果要生成特定范围内的随机数,RANDBETWEEN 函数是一种快速简便的方法。这允许您在您选择的任何两个值之间生成随机整数。使用 RANDBETWEEN 在 Excel 中生成随机数:单击您希望出现第一个随机数的单元格。键入=RANDBETWEEN(1,500)将“1”替换为您要生成的最低随机数,将“500”替换为

如何计算 Google 表格上的日期之间的差异如何计算 Google 表格上的日期之间的差异Apr 19, 2023 pm 08:07 PM

如果您的任务是处理包含大量日期的电子表格,那么计算多个日期之间的差异可能会非常令人沮丧。虽然最简单的选择是依靠在线日期计算器,但它可能不是最方便的,因为您可能必须将日期一一输入到在线工具中,然后手动将结果复制到电子表格中。 对于大量日期,您需要一个更方便地完成工作的工具。幸运的是,谷歌表格允许用户在本地计算电子表格中两个日期之间的差异。在这篇文章中,我们将使用一些内置函数帮助您计算Google表格上两个日期之间的天数。 如何计算Google表格上的日期之间的差异如果您希望Google

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구