以下のコードは私が取り組んできたものです。計算された得点に基づいて商品を評価すると、自分のロジックに欠陥があると思います。これは混乱しています。また、スコアに基づいて評価画像を作成する方法もわかりません。配列の最初の列はスコア値、2番目の列はプロダクトID、3番目の列はプロダクトの名前、4番目の列はブランドWebサイトへのリンクです。私は製品のスコアを反映する画像を第5列に出力したい。たとえば、スコアに基づいて商品を並べ替える場合、最初に高いスコアを持つ商品を表示したい場合は、5つ星の商品で商品[1]、4つ星の商品で商品[3] [0]は3つの画像、商品[4]は2つの画像、商品[2]は1つの星の画像です。 :何らかの理由でlanguage = "JavaScript"が私のために働き、type = "text/javascript"はそうではありません。誰かがこのコードのための指針を提供できるなら、私は心から感謝します。事前にありがとうございました:)JavaScript内の配列内に評価画像(5つ星、4つ星、3つ星など)を作成し、すべてをHTMLの表として出力する方法はありますか?
HTML:
<table id="table">
<tr id="tbody">
<th>Score</th>
<th>ID</th>
<th>Name</th>
<th>Website</th>
<th>Rating</th>
</tr>
</table>
はJAVASCRIPT:
var products = new Array(5);
products[0] = [26, 4859, "Panasonic TV", "http://www.panasonic.com"];
products[1] = [37, 4762, "Sony TV", "http://www.sony.com"];
products[2] = [9, 4899, "LG TV", "http://www.lg.com"];
products[3] = [34, 5001, "Samsung TV", "http://www.samsung.com"];
products[4] = [22, 3425, "Vizio TV", "http://www.vizio.com"];
function Comparator(a,b) {
if (if (a[0] > b[0]) return -1;
if (a[0] < b[0]) return 1;
return 0;
}
var productsSorted = products.sort(Comparator);
for (i=0; i<products.length, i++) {
if (products[0] === 37) {
document.getElementById("IMG5");
} else if (products[0] === 34) {
document.getElementById("IMG4");
} else if (products[0] === 26) {
document.getElementById("IMG3");
} else if (products[0] === 22) {
document.getElementById("IMG2");
} else {
document.getElementById("IMG1");
};
table.appendChild(tbody);
productsSorted.forEach(function(item) {
var row = document.createElement("tr");
var score = document.createElement("td");
score.textContent = item[0];
var ID= document.createElement("td");
ID.textContent = item[1];
var name = document.createElement("td");
name.textContext = item[2];
var link_td = document.createElement("td");
var link = document.createElement("a");
link.textContent = item[3]
link.href = item[3]
link_td.appendChild(link);
var rating = new Array(5);
var rating_td = document.createElement("td");
var rating[0] = document.createElement("IMG5");
rating.setAttribute("src","http://dkcoin8.com/images/five-star-clipart-4.png");
var rating[1] = document.createElement("IMG4");
rating.setAttribute("src","http://aliviogroup.com.au/wp-content/uploads/2016/04/four-stars.jpg");
var rating[2] = document.createElement("IMG3");
rating.setAttribute("src","https://waytoomuchtelevision.files.wordpress.com/2011/01/3star.jpg");
var rating[3] = document.createElement("IMG2");
rating.setAttribute("src","https://authorjanedoe.files.wordpress.com/2012/07/2star.jpg");
var rating[4] = document.createElement("IMG1");
rating.setAttribute("src","http://clipart.printcolorcraft.com/wp-content/uploads/stars/smooth%20star.jpg");
rating_td.appendChild(rating);
row.appendChild(score);
row.appendChild(ID);
row.appendChild(name);
row.appendChild(link);
row.appendChild(rating);
table.appendChild(row);
});
私はあなたのコードのすべてを読んでいない..しかし、これは潜在的な問題である可能性があります。ループ内で 'products [0]'から 'products [i] [0]' –
に変更してください。失礼や攻撃的なものではありませんが、座ってコード全体を書き直してください。 – Teemu
"何らかの理由でlanguage =" JavaScript "が動作し、type =" text/javascript "は機能しません。あなたのページのdoctype宣言が不足しているか、無効にしているタイプミスがあります。あなたのサンプルコードをもう少し完全に修正することをお勧めします。 –