我在一行中有多個項目,我想根據我的選擇輕鬆更改邊框的樣式。如何更改不是「(obj)」的元素的樣式
這裏只是行和一些項目的HTML它:
<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>
我都試過,如果!(obj).style....
做。然而,這將無法正常工作,我無法在任何地方找到解決方案。
我知道如何做到這一點與狀態和案例。但是,我不希望我的JS長達幾百行。
因此,這裏是我的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";
}
}
如果你有'變種changeback =的document.getElementById(OBJ!);',究竟是你想怎麼辦呢?如果您正在尋找將邊框添加到所選項目中,則可以更容易地選擇該行中的所有項目,移除所選樣式,然後將選定樣式應用於選定項目。 – hungerstar
不。 getElementByID(!obj)將不起作用。因爲要選擇多個元素,而getElementById是爲了檢索一個ID。檢查出這個線程:http://stackoverflow.com/questions/14408891/getelementbyid-multiple-ids – admcfajn