如何使用JavaScript更改子元素的源?
我希望在单击父元素时更改图像元素的源属性。child/image元素实际上嵌套在两个div中,这使事情稍微复杂一些,我怀疑这就是我在代码中出错的地方 JavaScript如下所示:如何使用JavaScript更改子元素的源?,javascript,jquery,src,Javascript,Jquery,Src,我希望在单击父元素时更改图像元素的源属性。child/image元素实际上嵌套在两个div中,这使事情稍微复杂一些,我怀疑这就是我在代码中出错的地方 JavaScript如下所示: <script src="js/jquery-1.7.2.min.js"></script> <script> $(document).ready(function () { $('.slideContent').hide();
<script src="js/jquery-1.7.2.min.js"></script>
<script>
$(document).ready(function () {
$('.slideContent').hide();
$('.slideHeader').toggle(
function () {
$(this).next('.slideContent').slideDown();
$(this).children('.dropDownIcon').children('img').src = "./images/dropDownIconUp.png";
},
function () {
$(this).next('.slideContent').fadeOut();
$(this).children('.dropDownIcon').children('img').src = "./images/dropDownIconDown.png";
}
); // end toggle
}); // end ready
但就我所见,我在链中选择了正确的元素。如果有人能对这件事有所了解,我们将不胜感激。当互联网上的所有东西都在验证上面的代码时,它们应该可以正常工作(虽然有点凌乱)
提前感谢。
src
是img
标记的属性,因此请使用.attr()
试试看
使用$(this.find('img').attr('src','./images/dropDownIconUp.png')
我知道您已经接受了答案,但让我简单地告诉您一些要点
.src=“blah”
不适用于jquery对象。$()
始终返回jquery对象,您必须使用.attr()或.prop()
来处理jquery对象
然而,jquery提供了一种转换为javascript对象的简单方法
如果您仍然想将其用作javascript对象,可以这样做
$(".slideHeader").children('.dropDownIcon').children('img')[0].src = "./images/dropDownIconDown.png";
使用方法更改src
属性。您需要了解原始DOM对象和jQuery对象之间的区别.src
是DOM对象的属性,而不是jQuery。请在提问之前澄清您的问题,您说过您想要一个javascript解决方案,并且您已经标记了jqueryuse.attr('src','。/images/dropDownIconUp.png')
谢谢,工作正常。在我找到的另一个示例中,我确实看到过这种方法,但我在网上找到的所有更改源代码的示例都使用了“.src=”string“。这在本例中不起作用,但在其他示例中起作用,这有什么原因吗?@user2585188很乐意提供帮助。”。!谢谢,我想就像Barmar上面说的,我需要了解原始DOM对象和jQuery对象之间的区别。转换在哪里?在找到img元素后使用[0]?
$(this).children('.dropDownIcon').children('img').src = "./images/dropDownIconUp.png";
$(this).children('.dropDownIcon').children('img').attr('src', "./images/dropDownIconUp.png");
$(".slideHeader").children('.dropDownIcon').children('img')[0].src = "./images/dropDownIconDown.png";