あなたの言うことを実行するJavaScriptは次のとおりです。
window.addEventListener("load", function () {
"use strict";
var imgClick = function (elemSelected, elemThis) {
var idIndex;
if ((idIndex = imgSelected.indexOf(elemThis.id)) === -1) {
imgSelected.push(elemThis.id);
elemThis.className = "selected"
} else {
imgSelected.splice(idIndex, 1);
elemThis.className = "unselected";
};
console.log(elemSelected);
}
var imgDiv = document.getElementById("imgDiv");
var imgChildren = imgDiv.children;
var imgElements = [];
var imgSelected = [];
var i;
for (i = 0; i < imgChildren.length; i += 1) {
imgElements.push(imgChildren[i]);
imgChildren[i].addEventListener("click", function () {imgClick(imgSelected, this)});
}
});
関連する HTML は次のとおりです。
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<script type="text/javascript" src="imageSelect.js"></script>
<style type="text/css">
img.unselected {
border-color: black;
border-width: 1px;
border-style: solid;
}
img.selected {
border-color: red;
border-width: 3px;
border-style: solid;
}
</style>
<body>
<div id="imgDiv">
<img class="unselected" id="img01" src="intrepidWidgets.ico" title="Unselected"/>
<img class="unselected" id="img02" src="300px-Java_logo_svg.png" title="Unselected"/>
</div>
</body>
</html>
Array グローバル オブジェクトの indexOf プロパティについて説明しているリンクを次に示します。IE 9 より前の Internet Explorer との互換性の問題がある可能性がありますが、それを修正するコードがあります。
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf
ここに作業コードへのリンクがあります。結果のログを表示するには、コンソールを開く必要があります (Chrome で F12 を押します)。
http://www.quirkscode.com/flat/forumPosts/imgSelect/imageSelect.html
MDN では addEventListener についても説明しています (その要素名を検索してください)。現在、イベント リスナーを追加する方法として推奨されていますが、IE < 9 との互換性の問題があります。