嗨,我有一個UL像這樣:如何改變parentNode風格上childNode事件屬性
<ul id="list">
<li class="something">
<div class="btns" onclick="add(this)"> + </div>
<div class="btns" onclick="sub(this)"> - </div>
</li>
<li class="something new">
<div class="btns" onclick="add(this)"> + </div>
<div class="btns" onclick="sub(this)"> - </div>
</li>
</ul>
CSS明智的,一流的「東西」包含背景圖像。
我想在這裏實現什麼,是當加()或子()的調用函數,進行呼叫改變元素的parentNode的background-image屬性...
所以這樣,我不必爲每個元素製作ID,並且可以重複使用相同的函數...
我所擁有的是類似這樣的東西,但它不起作用(而是代碼我寫的是錯的):
function add(x)
{
var y = x.parentNode.style;
if (y.backgroundImage == 'url("../assets/1.png")'
{
y.backgroundImage = 'url("../assets/2.png")';
} else if (y.backgroundImage == 'url("../assets/2.png")'
y.backgroundImage = 'url("../assets/3.png")';
...
... so on so forth...
}
整體邏輯本身可能是p OOR,所以我願意接受新的建議太...
編輯#1:增加了更多的細節來解釋目前的情況......
從本質上講,有其填充了李的一個3x3的網格,背景圖像使用點指示當前數量。每個裏面都有兩個按鈕,用於添加和減少。點擊每一個,背景圖像應該改變以表示當前數量...並且這必須獨立於不同的li完成...
嘿,我似乎能夠理解你的代碼,我同意,在一定程度上改變CSS類會更容易。但讓我們先談談你的第一個函數 - 糾正我,如果我在這裏錯了,但開關參數'(真)'將比較案件,以檢查它們是否是真實的,並據此執行代碼?如果是這樣,你的第一個案例(y.indexOf(「1.png」)!= - 1): - 你是否介意解釋這一點?我似乎沒有得到它... :-( – Abhishek 2011-05-11 07:02:15
添加了一些評論,但是是的,它會執行第一個案件,它發現評估爲真。indexOf搜索y(主字符串)的子字符串(1。 png)並返回主字符串內部字符串的位置...如果它沒有找到它,它會返回-1 – WSkid 2011-05-11 07:11:27
啊,感謝您的解釋......對我有意義,現在執行,會讓你知道它是如何去... :-) – Abhishek 2011-05-11 07:24:00