나는 가능하면 테이블을 구성 D3를 사용합니다 :
var data = [["Red","Blue","Blue"], ["Red"], ["Blue"], ["Red", "Blue"], ["Red", "Blue", "Red"], ["Red","Red","Red","Red","Blue"]];
var table = d3.select("#container").append("table"),
tbody = table.append("tbody");
var rows = tbody.selectAll("tr")
.data(data)
.enter().append("tr");
var cells = rows.selectAll("td")
.data(function (row) {
var tally = {Red:0,Blue:0};
row.forEach(function(item) {
tally[item]++;
});
return ["rgba(255,0,0,"+ tally["Red"]*0.1 +")",
"rgba(0,0,255,"+ tally["Blue"]*0.1 +")"];
})
.enter()
.append("td")
.text("foo")
.style("background-color", function(d) {
console.log(d);
return d;
});
당신의 HTML이 이미 표가 인코딩 된 경우 http://jsfiddle.net/ztGE9/2/
, 각
td
의 텍스트를 얻을 수 있고 일을 집계하는 정규 표현식을 사용 - - 본질적으로 데이터를 기반으로 사물을 선택할 필요가 없습니다. 여기를 참조하십시오 :
http://jsfiddle.net/aKtct/.
var tds = document.getElementsByTagName("td"),
forEach = Array.prototype.forEach;
forEach.call(tds, function (td) {
var redMatch = td.textContent.match(/Red/g),
redCt = redMatch && redMatch.length || 0,
blueMatch = td.textContent.match(/Blue/g),
blueCt = blueMatch && blueMatch.length || 0;
var rgba = redCt ? "rgba(255,0,0," + 0.1 * redCt + ");" :
"rgba(0,0,255," + 0.1 * blueCt + ");";
td.style.cssText += "background-color:" + rgba;
})
당신이 정말이 데이터를 기반으로 요소를 선택 custom data attributes을 사용하고 $("#td[data-something='RedRedRedBlue']")
같은 속성을 선택하십시오.