2015-05-19 31 views
1

所以我想遍歷多個元素,我似乎遇到了問題。我有2個div,每個div都有兩個子元素 - 一個輸入和一個鏈接。鏈接裏面還有一張圖片。當我點擊第一個div的輸入按鈕時,我希望能夠遍歷它的同胞(鏈接{a標籤})並進入鏈接child(img標籤)並獲取其源屬性,然後我將使用它改變第二個div的圖像。下面的代碼的摘錄通過多個元素遍歷jquery

HTML:

<div id="item"> 
    <a href="#" target="_blank" id="yeezy"><img src="img/deli/1.jpg" alt="Owl Image" id="homeimage"></a> 
    <input type="submit" id="btn1" class="btn btn-default dropdown-toggle viewbuttons" value="View Item" onclick='changeImage("img/deli/1.jpg");'> 
</div> 
<div class="item"> 
    <a href="#" target="_blank"><img src="img/deli/2.jpg" alt="Owl Image" id="homeimage"></a> 
    <input type="submit" id="btn" class="btn btn-default dropdown-toggle viewbuttons" value="View Item" onclick='changeImage("img/deli/2.jpg");'> 
</div> 

JQUERY:

$(document).ready(function(e){ 

    $('input#btn1').on('click', function(){ 

     var changeThis = $('input#btn1').siblings('#yeezy').children('img').attr('src'); 
     $("#homeimage").attr("img", changeThis); 

    }) 

}); 

預先感謝您

+0

應該採取什麼'changeThis'在你的榜樣等於?我假設'img/deli/1.jpg'?你有什麼'id =「item」'和'class =「item」'的原因是什麼? – FrankerZ

回答

1

ID必須是唯一的。 ID選擇器僅選擇文檔中的第一個匹配元素。您正在獲取/設置一個元素的屬性,即$('input#btn1').siblings('#yeezy').children('img')$("#homeimage")都指向相同的元素。

使用不同的ID或使用類屬性。另請注意,由於ID必須是唯一的,因此$('input#btn1').siblings('#yeezy')沒有多大意義。您可以使用ID選擇器簡單地選擇元素:$('#yeezy');

+0

哇!從來沒有注意到所有的錯誤大聲笑。非常感謝你。我遵循了你的所有步驟,並且完美運行 – Leroy

0

你的代碼有幾件事情要做。您使用id「homeimage」兩次,但應該只有一個給定的id。除了要運行的功能之外,您還將onclick屬性設置爲不同的功能,因此您應該刪除這些功能。最後,當你試圖改變homeimage的src屬性,您撥打的IMG ATTR功能:("img", changeThis);

確保所有的ID都是唯一的,從你的元素中所有的onclick atrributes,然後更換:

$("#homeimage").attr("img", changeThis);

有:

$('#homeimage').attr('src', changeThis);

+0

非常感謝。有效 – Leroy