複数の項目が並んでいますが、私の選択に基づいて簡単に境界線のスタイルを変更したいと思います。 !(obj).style....
場合、私が何をしようとしている"(obj)"以外の要素のスタイルを変更する方法
<div class="items">
<ul>
<li class="item-hold">
<span class="item icon64x64">
<img class="item-img icon64x64" src="css/img/3001.png" alt="Abyssal Scepter" id="as">
</span>
</li>
<li class="item-hold">
<span class="item icon64x64">
<img class="item-img icon64x64" src="css/img/3020.png" alt="Sorcerer's Shoes" id="ss">
</span>
</li>
<li class="item-hold">
<span class="item icon64x64">
<img class="item-img icon64x64" src="css/img/3025.png" alt="Iceborn Gauntlet" id="ig">
</span>
</li>
</ul>
</div>
:ここ
だけの行とその中の項目のいくつかのHTMLです。しかし、それはうまくいかず、私はどこでも解決策を見つけることができません。
私は状態とケースでこれを行う方法を知っています。しかし、私はJSが数100行になることを望んでいませんでした。
だからここに私のjs
var as = document.getElementById('as');
var ss = document.getElementById('ss');
var ig = document.getElementById('ig');
as.addEventListener('click', function() {
ItemDisc('as');
});
ss.addEventListener('click', function() {
ItemDisc('ss');
});
ig.addEventListener('click', function() {
ItemDisc('ig');
});
function ItemDisc(obj) {
var change = document.getElementById(obj);
var changeback = document.getElementById(!obj);
change.style.border = "5px solid blue";
for(!obj) {
changeback.style.border = "5px solid blue";
}
}
を;'、まさにそこにやろうとしていますか?選択した項目に罫線を追加する場合は、行内のすべての項目を選択しやすく、選択したスタイルを削除して、選択した項目を選択項目に適用する方が簡単です。 – hungerstar
getElementByID(!obj)は動作しません。なぜなら、複数の要素が選択され、getElementByIdは1つのIDを取得するためです。このスレッドをチェックしてください:http://stackoverflow.com/questions/14408891/getelementbyid-multiple-ids – admcfajn