Notes
- Added v2.27.0 for use with the mark.js plugin.
- Notable Issues:
- - Some rows won't be highlighted because the filter finds fuzzy matches across rows, while the mark widget is targeting separate cell content.
- - Using a regular expression search will not include diacritics; use an " OR " search instead .
I may fix this in future updates. - or - When a regular expression matches everything, the regex is ignored by the mark widget otherwise, mark.js does bad things; but this regex is okay: .
- or - Operators & ranges are not fully supported (these are not supported at all by the filter widget in an "all" columns match - see the documentation on any match limitations).
- - There is nothing to highlight for not matches.
- The
mark
function is used for the following filter queries:- Plain text
- Logical AND (
and
or&&
) & logical OR (or
or|
) searches. - Invalid regex (e.g.
/(|)/
). - Operator, range, exact and not searches.
- The
markRegExp
function is used when the filter contains:- A "valid" regular expression
- Fuzzy search (
~
) - Wild card
?
or*
search
- Try out the jSFiddle Playground.
Options
Mark widget defaults (added inside of tablesorter widgetOptions
)
The widgetOptions are essentially Mark.js settings with a mark_
prefix. All options are dynamically updated.
TIP! Click on the link in the function column to reveal full details (or toggle|show|hide all) or double click to update the browser location.
Option | Default | Description |
---|---|---|
mark_tsUpdate | "markUpdate" | This option sets the event that can be triggered on the table to update the marks.
Use it as follows: $('table').tablesorter({ widgets: ['mark'], widgetOptions: { mark_tsUpdate: 'markFu' } }); $('button.update').click(function(){ // update the marks in the table $('table').trigger('markFu'); }); |
Mark.js settings - see official documentation | ||
mark_element | "mark" | HTML element to wrap matches. |
mark_className | "" | A class name added to the element. |
mark_exclude | [] | An array with exclusion selectors. Matches inside these elements will be ignored. |
mark_separateWordSearch | true | Whether to search for each word separated by a blank. |
mark_accuracy | "partially" | Use "partially", "complementary", "exactly" or object - see markjs docs for details. |
mark_diacritics | true | If true , diacritic characters should be matched. |
mark_synonyms | {} | An object with synonyms.. |
mark_iframes | false | Whether to search also inside iframes. |
mark_each | function(element){} | A callback for each marked element. |
mark_filter | function(parameters){ return true; } | A callback to filter or limit matches.
When the mark function is called, the function parameters are:
function(node, keyword, matches, totalMatches) { return true; }When the markRegExp function is called, the function parameters are:
function(node, match, totalMatches) { return true; } In both cases, a |
mark_noMatch | function(keyword){} | A callback function that will be called when there are no matches.
When the mark function is called, the keyword parameter is a string.
When the |
mark_done | function(totalMatches){} | A callback function after all marks are done. |
mark_debug | false | If true , messages will be logged. |
mark_log | console | Log message to this object. |
Demo: With the Filter Widget
Search/Highlight all columns:
Rank | First Name | Last Name | Age | Total | Discount | Date |
---|---|---|---|---|---|---|
1 | Philip Aaron Wong | Johnson Sr Esq | 25 | $5.95 | 22% | Jun 26, 2004 7:22 AM |
11 | Aáron | Hibert | 12 | $2.99 | 5% | Aug 21, 2009 12:21 PM |
12 | Brandon Clark | Henry Jr | 51 | $42.29 | 18% | Oct 13, 2000 1:15 PM |
111 | Peter | Párker | 28 | $9.99 | 20% | Jul 6, 2006 8:14 AM |
21 | John | Hood | 33 | $19.99 | 25% | Dec 10, 2002 5:14 AM |
013 | Clark | Kènt Sr. | 18 | $15.89 | 44% | Jan 12, 2003 11:14 AM |
005 | Bruce | Almighty Esq | 45 | $153.19 | 44% | Jan 18, 2021 9:12 AM |
10 | Alex | Dumāss | 13 | $5.29 | 4% | Jan 8, 2012 5:11 PM |
16 | Jim | Franco | 24 | $14.19 | 14% | Jan 14, 2004 11:23 AM |
166 | Brüce Lee | Evans | 22 | $13.19 | 11% | Jan 18, 2007 9:12 AM |
100 | Brenda Dexter | McMasters | 18 | $55.20 | 15% | Feb 12, 2010 7:23 PM |
55 | Dennís | Bronson | 65 | $123.00 | 32% | Jan 20, 2001 1:12 PM |
9 | Martha | delFuego | 25 | $22.09 | 17% | Jun 11, 2011 10:55 AM |
Demo: Without the Filter Widget
Search/Highlight all columns:
Rank | First Name | Last Name | Age | Total | Discount | Date |
---|---|---|---|---|---|---|
1 | Philip Aaron Wong | Johnson Sr Esq | 25 | $5.95 | 22% | Jun 26, 2004 7:22 AM |
11 | Aáron | Hibert | 12 | $2.99 | 5% | Aug 21, 2009 12:21 PM |
12 | Brandon Clark | Henry Jr | 51 | $42.29 | 18% | Oct 13, 2000 1:15 PM |
111 | Peter | Párker | 28 | $9.99 | 20% | Jul 6, 2006 8:14 AM |
21 | John | Hood | 33 | $19.99 | 25% | Dec 10, 2002 5:14 AM |
013 | Clark | Kènt Sr. | 18 | $15.89 | 44% | Jan 12, 2003 11:14 AM |
005 | Bruce | Almighty Esq | 45 | $153.19 | 44% | Jan 18, 2021 9:12 AM |
10 | Alex | Dumāss | 13 | $5.29 | 4% | Jan 8, 2012 5:11 PM |
16 | Jim | Franco | 24 | $14.19 | 14% | Jan 14, 2004 11:23 AM |
166 | Brüce Lee | Evans | 22 | $13.19 | 11% | Jan 18, 2007 9:12 AM |
100 | Brenda Dexter | McMasters | 18 | $55.20 | 15% | Feb 12, 2010 7:23 PM |
55 | Dennís | Bronson | 65 | $123.00 | 32% | Jan 20, 2001 1:12 PM |
9 | Martha | delFuego | 25 | $22.09 | 17% | Jun 11, 2011 10:55 AM |
Page Header
<!-- blue theme stylesheet --> <link rel="stylesheet" href="css/theme.blue.css"> <!-- tablesorter plugin --> <script src="js/jquery-latest.min.js"></script> <script src="js/jquery.tablesorter.js"></script> <script src="js/jquery.tablesorter.widgets.js"></script> <!-- jquery.mark.js & tablesorter mark widget loaded after the plugin --> <script src="js/jquery.mark.js"></script> <script src="js/widget-mark.js"></script>