// sample data, 3 items
var data = [{
ItemNo: "A4710102800",
Description: "UPRIGHT VACUUM CLEANER",
ModelNo: "XJ-900"
}, {
ItemNo: "A4710102801",
Description: "CANISTER VACUUM CLEANER",
ModelNo: "XJ-901"
}, {
ItemNo: "A4710102802",
Description: "HANDHELD VACUUM CLEANER",
ModelNo: "XJ-902"
}];
// render table body and rows
var $tbody = $("<tbody></tbody>");
$.each(data, function(idx) {
var $tr = $([
"<tr>",
'<td title="Analyze Item" class="item_analyzer" data-itemidx="', idx.toString(), '">', htmlEscape(this.ItemNo), '</td>',
"<td>", htmlEscape(this.Description), "</td>",
"<td>", htmlEscape(this.ModelNo), "</td>",
"</tr>"
].join("")).appendTo($tbody);
});
$tbody.appendTo($("#tblItems"));
// attach click handler
$(".item_analyzer").on("click", function() {
var itemIdx = $(this).data("itemidx");
var item = data[itemIdx];
var itemNo = item.ItemNo;
var url = "Item.jpage?item=" + encodeURIComponent(itemNo);
var debug = true; // dont actually load page, just show URL
if (debug) {
alert(url);
console.log(url);
} else {
location.href = url; // use this in production code
}
});
// thanks to http://stackoverflow.com/questions/1219860/html-encoding-in-javascript-jquery
function htmlEscape(str) {
return String(str)
.replace(/&/g, '&')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(/</g, '<')
.replace(/>/g, '>');
}
td {
padding: 4px 14px;
}
.item_analyzer {
text-decoration: underline;
cursor: pointer;
}
.item_analyzer:hover {
background-color: #666;
color: #eee;
text-decoration: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id='tblItems'></table>