Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaScript更改子元素的源?_Javascript_Jquery_Src - Fatal编程技术网

如何使用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();

我希望在单击父元素时更改图像元素的源属性。child/image元素实际上嵌套在两个div中,这使事情稍微复杂一些,我怀疑这就是我在代码中出错的地方

JavaScript如下所示:

    <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";