Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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
如何使用jQuery使图像成为指向其自身源的链接?_Jquery - Fatal编程技术网

如何使用jQuery使图像成为指向其自身源的链接?

如何使用jQuery使图像成为指向其自身源的链接?,jquery,Jquery,我很难找到一种方法,使我的网站上的所有图像链接到自己,所以点击的图像打开一个新窗口 目前我正在使用HTML来实现这一点,但是,我更希望在HTML中只包含图像代码,并使用jQuery添加链接 例如,HTML加载如下所示: <img src="/img/01.jpg"> 我想用jQuery将其更改为: <a href="/img/01.jpg"><img src="/img/01.jpg"></a> 我的做法如下: $("img").wrap($(

我很难找到一种方法,使我的网站上的所有图像链接到自己,所以点击的图像打开一个新窗口

目前我正在使用HTML来实现这一点,但是,我更希望在HTML中只包含图像代码,并使用jQuery添加链接

例如,HTML加载如下所示:

<img src="/img/01.jpg">
我想用jQuery将其更改为:

<a href="/img/01.jpg"><img src="/img/01.jpg"></a>
我的做法如下:

$("img").wrap($('<a>',{
  href: ''
}));
我只是不知道如何最好地继续下去。如何从img中提取链接并将其置于“href”位之后。

您可以使用每个链接来迭代a元素。然后使用attr'href'获得href的值

find将允许您获取与链接关联的img元素

然后您只需使用attr'src',myValue将attr'href'获得的值设置为img

$function{ $'a'。每个函数{ var href=$this.attr'href'; $this.find'img'.attr'src',href; }; };
您可以通过提供一个wrap函数来实现所需的功能,该函数返回一个元素来包装特定的img实例。由于此函数分别应用于每个img,因此可以使用this.src检索要在正在创建的a元素上设置的href属性。试试这个:

$img.wrapfunction{ 返回${ href:this.src }; };
据我所知,你有一堆带有src属性的img。当用户单击它们时,您希望打开一个带有src链接的新选项卡

您可以通过将它们包装在一个标记中来实现这一点,也可以创建一个单击函数,用该链接打开一个新选项卡

解决方案1。用标签包起来

常数img=$img; $img.wrapfunction{ 返回`` };
对于具有相同CSS类名的每个图像,用图像的src锚定围绕它

$document.readyfunction{ var someimage=document.getElementsByClassNamemyimg;
forvar i=0;i您具体遇到了什么问题?您编写了哪些代码,哪些代码没有按预期工作?您能够选择您的元素吗?您能够读取它们的属性吗?您能够创建您的元素吗?您能够向DOM添加元素吗?您具体遇到了什么问题?谢谢David,我明白了我的缺点以一种信息丰富的方式阐明我的问题。我将编辑该问题。不幸的是,我现在意识到我一直在问一个非常含糊的问题。如果我错了,请纠正我;您的代码是否与我所需要的完全相反?我现在可能可以在img中添加一个,并从中提供信息。@Jordy我没有看到您编辑的answ呃。是的,这并没有回应你的问题:好吧,你现在有你的答案了。谢谢你的时间和努力。谢谢。问题。为什么要使用var而不是const?为什么要将它分配给另一个变量?当这个范围在返回中不会改变时,你可以直接在那里使用它,例如:$img.wrapfunction{return$,{href:this.src};};?。如果使用它,为什么不使用它来获取src。$img.wrapfunction{const src=this.src;return$,{href:img.src};}?此外,您还需要添加target blank作为属性:。这不是一个负面评论。我只是好奇,希望向更有经验的用户学习。我在这里使用var是出于习惯,因为我一直在处理一些遗留系统。如果您对它不适用于IE10或更低版本感到高兴,请随意使用const。这来自wrap的内容需要be被重新分配,因为它在$object中有一个不同的作用域。target=\u blank是一个很好的点,如果需要的话,OP可以很容易地修改它。不要害怕问问题:正如我在这里看到的->它不会改变作用域。如果它改变了,它应该是指'a'对象,对吗?还有谁在地狱中使用IE 10?:更严肃地说。我是我习惯于使用const和let,因为我也在使用Babel。但是你关于在这种情况下使用var的观点是正确的。你是对的。我在编写代码片段时对此进行了测试,但出现了一个错误,尽管承认我没有太多注意。我会修改答案。谢谢。另外,许多企业级系统仍然依赖IE10。这使我这是一个令人悲伤的潘达诺问题。谢谢你的解释和时间。干杯:D