現在、bookweb (書店カート ソリューション) によって動的に生成される教科書リストを並べ替えようとしています。カートを教科書の種類ごとに指定または推奨で注文したいです。現在、その情報はカートの問題によってタイプ フィールドに提供されています。カートの cgi ファイルを編集してそのように並べ替えることができないという問題です。1次ソートは教科別、4冊まで入力可能、2次ソートは教科書の種類別、規定・推奨の順にソートされています。現在の形式は次のとおりです。
Title Type Author ISBN Price
Subject Name
Textbooks Prescribed xxxx xxxx xxx
Textbooks Recommended xxxx xxxx xxx
Subject Name....//it then repeats for all subjects entered
私が必要とするのは:
Title Author ISBN Price
Subject Name
Prescribed
Textbooks xxxxx xxxx xxx
Recommended
Textbooks xxxxx xxxx xxx
Subject Name....//it then repeats for all subjects entered
タイプに応じて本を色分けするために Javascript と CSS を使用してみましたが、それは最初の行のみを行い、規定されたもののみを行います。
if (<BOOKWEB-TYPE> == "Prescribed"){
//alert("prescribed");
document.getElementById("textbook").className = "bsPrescribed";
}
else if (<BOOKWEB-TYPE> == "Recommended"){
//alert("recommended");
document.getElementById("textbook").className = "bsRecommended";
}
トラブルシューティングのアラートを入れたのに、リストにおすすめの本があるのに、処方箋のアラートしか表示されません。getElementsByName も試しましたが、まったく機能しませんでした。たとえそうだとしても、好ましい2つのカテゴリ(処方または推奨)で本に分類されないため、色が混ざり合ったままになります。
これを達成するための最速で最も簡単な方法は何ですか。
アップデート1:
現在、getElementById は最初の行を強調表示することさえしていません。クラスは変更されましたが、CSS は有効になりませんでした。今でもクラスは変わりません。
更新 2:
おっと、ここでタイプミスして修正し、コードが正常に膨らむことを確認しましたが、今ではそのスクリプトがまったく実行されません。さらにいじってみると、引用符が必要であることに気付きました<BOOKWEB-TYPE>
。
if ("<BOOKWEB-TYPE>" == "Prescribed"){
alert("prescribed");
document.getElementById("textbook").className = "bsPrescribed";
}
else if ("<BOOKWEB-TYPE>" == "Recommended"){
alert("recommended");
document.getElementById("textbook").className = "bsRecommended";
}
しかし、今では、の最初の行のみを更新し、規定の本に到達すると緑色に、推奨される本に到達すると黄色に色付けされますが (定義された CSS クラスに従って)、他のクラスは変更されません。最初の行の後の本。アラートは正常に表示されますが、推奨と規定の違いはわかっています。
更新 3:
これを試してみましたが、クラスが変わらないため、強調表示も機能しません。同じIDは問題になると思いました。
if ("<BOOKWEB-TYPE>" == "Prescribed"){
alert("prescribed");
document.getElementsByName("textbook").className = "bsPrescribed";
}
else if ("<BOOKWEB-TYPE>" == "Recommended"){
alert("recommended");
document.getElementsByName("textbook").className = "bsRecommended";
}
更新 4: 教科書の行の HTML コード:
<tr name="textbook" id="textbook" valign=top>
<td align=center valign=top class="bntablerow"><input type="checkbox" name="<BOOKWEB-APN>" /></td>
<td id="bntable" class="bntablerow"><a href="<BOOKWEB-BINHREF>details<BOOKWEB-CGIEXT>?ITEMNO=<BOOKWEB-APN>"><BOOKWEB-TITLE></a></td>
<td class="bntablerow"><BOOKWEB-TYPE> </td>
<td class="bntablerow"><BOOKWEB-AUTHOR> </td>
<td class="bntablerow"><BOOKWEB-ISBN> </td>
<td align="right" class="bntablerow">$<BOOKWEB-PRICE></td>
更新 5: コードを次のように変更しました。
var myTR = document.getElementsByTagName('tr');
for (var i=0;i<myTR.length;i++) {
if ("<BOOKWEB-TYPE>" == "Prescribed") {
myTR[i].className = 'bsPrescribed';
}
}
これは処方されたものに色を付け、推奨されるものは無色のままにしますが、問題は、2 つまたは 3 つの被験者がいる場合、一度に 1 つの被験者に対してしか機能せず、すべての行に色を付けることです。何か案は?