2015-05-19 108 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