JSFiddle - React, Tailwind, and code Playground

HTML

<table class="table table-hover">
	        <thead>
        <tr>
          <th>#</th>
		  <th>Название статьи</th>
          <th>Дата публикации</th>
          <th>Категория</th>
        </tr>
      </thead>
       <tbody>

        <tr>
		  <td>1</td>
		   <td>
		   <a href="admin.php?action=editArticle&amp;articleId=7">Разработка ГИС для сравнения площади посева сельскохозяйственных угодий</a>
            
          </td>
          <td>13 Jun 2014</td>

          <td>
            ГИС          </td>
        </tr>
 

        <tr>
		  <td>2</td>
		   <td>
		   <a href="admin.php?action=editArticle&amp;articleId=17">Автоматическая расстановка дорожных знаков</a>
            
          </td>
          <td>13 Jun 2014</td>

          <td>
            ГИС          </td>
        </tr>
         <tr>
		  <td>1</td>
		   <td>
		   <a href="admin.php?action=editArticle&amp;articleId=7">Разработка ГИС для сравнения площади посева сельскохозяйственных угодий</a>
            
          </td>
          <td>13 Jun 2014</td>

          <td>
            ГИС          </td>
        </tr>
 

        <tr>
		  <td>2</td>
		   <td>
		   <a href="admin.php?action=editArticle&amp;articleId=17">Автоматическая расстановка дорожных знаков</a>
            
          </td>
          <td>13 Jun 2014</td>

          <td>
            ГИС          </td>
        </tr>
                   <tr>
		  <td>1</td>
		   <td>
		   <a href="admin.php?action=editArticle&amp;articleId=7">Разработка ГИС для сравнения площади посева сельскохозяйственных угодий</a>
            
          </td>
          <td>13 Jun 2014</td>

          <td>
            ГИС          </td>
        </tr>
 

        <tr>
		  <td>2</td>
		   <td>
		   <a href="admin.php?action=editArticle&amp;articleId=17">Автоматическая расстановка дорожных знаков</a>
            
          </td>
          <td>13 Jun 2014</td>

          <td>
            ГИС          </td>
        </tr>
                   <tr>
		  <td>1</td>
		   <td>
		   <a...

CSS

/*!
 * Bootstrap v3.1.1 (http://getbootstrap.com)
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */

/*! normalize.css v3.0.0 | MIT License | git.io/normalize */
html {
  font-family: sans-serif;
  -webkit-text-size-adjust: 100%;
      -ms-text-size-adjust: 100%;
}
body {
  margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
[hidden],
template {
  display: none;
}
a {
  background: transparent;
}
a:active,
a:hover {
  outline: 0;
}
abbr[title] {
  border-bottom: 1px dotted;
}
b,
strong {
  font-weight: bold;
}
dfn {
  font-style: italic;
}
h1 {
  margin: .67em 0;
  font-size: 2em;
}
mark {
  color: #000;
  background: #ff0;
}
small {
  font-size: 80%;
}
sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}
sup {
  top: -.5em;
}
sub {
  bottom: -.25em;
}
img {
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
figure {
  margin: 1em 40px;
}
hr {
  height: 0;
  -moz-box-sizing: content-box;
       box-sizing: content-box;
}
pre {
  overflow: auto;
}
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
  margin: 0;
  font: inherit;
  color: inherit;
}
button {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer;
}
button[disabled],
html input[disabled] {
  cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  padding: 0;
  border: 0;
}
input {
  line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  padding:...

JavaScript

$('table.table').each(function() {
    var currentPage = 0;
    var numPerPage = 5;
    var $table = $(this);
    $table.bind('repaginate', function() {
        $table.find('tbody tr').hide().slice(currentPage * numPerPage, (currentPage + 1) * numPerPage).show();
    });
    $table.trigger('repaginate');
    var numRows = $table.find('tbody tr').length;
    var numPages = Math.ceil(numRows / numPerPage);
    var $pager = $('<ul class="pagination"></ul>');
    var $previous = $('<li><a href="#">&laquo;</a></li>');
    var $next = $('<li><a href="#">&raquo;</a></li>');
    for (var page = 0; page < numPages; page++) {
        $('<span class="page-number"></span>').text(page + 1).bind('click', {
            newPage: page
        }, function(event) {
            currentPage = event.data['newPage'];
            $table.trigger('repaginate');
            $(this).addClass('active').siblings().removeClass('active');
        }).appendTo($pager).addClass('clickable');
    }
    $pager.insertBefore($table).find('span.page-number:first').addClass('active');
    $previous.insertBefore('span.page-number:first');
    $next.insertAfter('span.page-number:last');
    
    $next.click(function (e) {
        $previous.addClass('clickable');
        $pager.find('.active').next('.page-number.clickable').click();
    });
    $previous.click(function (e) {
        $next.addClass('clickable');
        $pager.find('.active').prev('.page-number.clickable').click();
    });
    $table.on('repaginate', function () {
        $next.addClass('clickable');
        $previous.addClass('clickable');
        
        setTimeout(function () {
            var $active = $pager.find('.page-number.active');
            if ($active.next('.page-number.clickable').length === 0) {
                $next.removeClass('clickable');
            } else if ($active.prev('.page-number.clickable').length === 0) {
                $previous.removeClass('clickable');
            }
        });
    });
   ...