I want to add "..." or ">>" icon after 100 characters in my each HTML table column. Clicking on this icon will render the content in a simple pop-up multi-line box. 'Esc' or clicking on 'X' closes the box.
I have created a table dynamically using d3.js parsing CSV file. Below are my HTML and JavaScript
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>TableView</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div id="table-wrapper">
<div id="table-scroll">
<!-- Table goes here -->
</div>
</div>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
</body>
</html>
app.js
d3.csv("js/tweetBlog.csv", function(error, data) {
var sortAscending = true;
var table = d3.select('#table-wrapper').select('#table-scroll').append('table');
var titles = d3.keys(data[0]);
var headers = table.append('thead').append('tr').selectAll('th')
.data(titles).enter().append('th')
.text(function (d) {
return d;
})
.on('click', function (d) {
headers.attr('class', 'header');
if (sortAscending) {
rows.sort(function(a, b) { return b[d] < a[d]; });
sortAscending = false;
this.className = 'aes';
} else {
rows.sort(function(a, b) { return b[d] > a[d]; });
sortAscending = true;
this.className = 'des';
}
});
var rows = table.append('tbody').selectAll('tr')
.data(data).enter().append('tr');
rows.selectAll('td')
.data(function (d) {
return titles.map(function (k) {
return { 'value': d[k], 'name': k};
});
}).enter()
.append('td')
.attr('data-th', function (d) {
return d.name;
})
.text(function (d) {
return d.value;
});
});