配列内の textarea の innerHTML を取得し、その配列内の ID を検索する関数を作成しています。フットボールとバスケットボールという名前の ID は、ページの読み込み時に backgroundColor が変更されます。ここで、クラスターはテキストエリアの名前です。
コードは次のとおりです。
window.onload = checkids;
window.onload = btnsInit;
var selected = {};//keeps list of selected links
var val="";
function checkids() {
var check=document.getElementById("cluster").value;
selected = check.split(',');
var j, i, a = document.getElementById('boxpopup').getElementsByTagName('a');
for(j=0;j < selected.length; j++) {
for(i=0;i < a.length ; ++i) {
if(selected[j]==a[i]) {
this.style.backgroundColor="#2BBBF3";
}
}
}
}
function checkids() {
var check=document.getElementById("cluster").innerHTML;
selected.push(check);
//extract ids from select and change their background color
}
function btnsInit() {
var i, a = document.getElementById('boxpopup').getElementsByTagName('a');
for (i = 0; i < a.length; ++i) {
a[i].onclick = btnClick;
}
}
function btnClick(e) {
if (selected[this.id]) {
this.style.backgroundColor ="grey";
delete selected[this.id];//deleting if already been clicked
} else {
this.style.backgroundColor ="#2BBBF3";
selected[this.id] = this.id;//adding to the selected list
}
updateTextArea();
xPreventDefault(e);
return false;
}
function updateTextArea() {
var cluster = document.getElementById('cluster');
for ( var id in selected) {
val += selected[id] + ",";
}
cluster.value = val;//updating from selected list
}
function xPreventDefault(e) {
if (e && e.preventDefault)
e.preventDefault();
else if (window.event)
window.event.returnValue = false;
}
ありがとうございました。