如何使用Javascript在图像上创建链接 var a=document.createElement('a'); a、 href='http://mylink.com'; document.getElementById('mydiv').appendChild(a);
该脚本无法在图像上创建链接如何使用Javascript在图像上创建链接 var a=document.createElement('a'); a、 href='http://mylink.com'; document.getElementById('mydiv').appendChild(a);,javascript,image,hyperlink,Javascript,Image,Hyperlink,该脚本无法在图像上创建链接 <div id="mydiv"> <img src="myimage.jpg" /> </div> <script language="javascript"> var a=document.createElement('a'); a.href='http://mylink.com'; document.getElementById('mydiv').appendChild(a); </script> 您
<div id="mydiv">
<img src="myimage.jpg" />
</div>
<script language="javascript">
var a=document.createElement('a');
a.href='http://mylink.com';
document.getElementById('mydiv').appendChild(a);
</script>
您正在将链接放在图像后面
您需要移动图像,使其位于链接内
<div id="mydiv">
<a href="http://mylink.com"><img src="myimage.jpg" /></a>
</div>
var a=document.createElement('a');
a、 href='http://mylink.com';
var image=document.getElementById('mydiv').getElementsByTagName('img')[0];
b=a.附加子对象(图像);
document.getElementById('mydiv').appendChild(a);
谢谢你的主意。这项工作这里有一个解决方案,它不需要额外的div,并在HTML页面中的每个图像周围放置一个链接:
<div id="mydiv">
<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Cat_November_2010-1a.jpg/220px-Cat_November_2010-1a.jpg" />
</div>
<script language="javascript">
var a=document.createElement('a');
a.href='http://mylink.com';
var image = document.getElementById('mydiv').getElementsByTagName('img')[0];
b=a.appendChild(image);
document.getElementById('mydiv').appendChild(a);
</script>
$(文档).ready(函数(){
var images=document.getElementsByTagName('img');
对于(var i=0;i
用于单个图像
您可以通过元素对象、ID或第一个src
子字符串匹配传递图像。接受可选的目标属性,如“\u blank”。不需要jQuery
<!-- jQuery -->
<script type="text/javascript" charset="utf8" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js"></script>
<script type="text/javascript" charset="utf8">
$(document).ready(function(){
var images = document.getElementsByTagName('img');
for (var i = 0; i < images.length; i++) {
var image = images[i];
var parentElement = image.parentElement;
var a = document.createElement('a');
a.href = image.getAttribute('src');
a.appendChild(image);
parentElement.appendChild(a);
}
});
</script>
//按img元素对象
//(由以下功能使用)
var addImageLink=函数(元素,目标){
如果(!elem | |!('tagName'在elem中)){return;}
var图像=元素;
var parent=image.parentElement;
var a=document.createElement('a');
a、 href=image.getAttribute('src');
if(target){a.setAttribute('target',target);}
a、 附加子对象(图像);
父母、子女(a);
};
//按img元素id
//
//addImageLinkById('image1');
var addImageLinkById=函数(id,目标){
addImageLink(document.getElementById(id),目标);
};
//按img元素src(第一次匹配)
//
//addImageLinkBySrc('/1.jpg');
var addImageLinkBySrc=函数(src,目标){
var image,images=document.getElementsByTagName('img');
如果(typeof src=='undefined'){src='''';}
对于(var i=0;i
用于循环浏览所有图像
此解决方案在每个图像周围放置一个链接。这是法尔科答案的扩展版本
- 不使用jQuery
- 可选按href子字符串列出图像的白名单,如“images/gallery/”
- 指定可选的目标属性,如“\u blank”
- 不会跳过图像的后半部分
(我在尝试他的代码时遇到了这个问题,但可能是我做错了)
var addImageLinks=函数(过滤器,目标){
var父对象,a,图像;
var images=document.getElementsByTagName('img');
var hasTarget=(目标类型!=“未定义”);
var hasFilter=(过滤器类型!=“未定义”);
对于(var i=0;i //谢谢,我是昆汀。对不起,这对我没用。我已经尝试过了,如果脚本运行,那么图像就不会显示
<!-- jQuery -->
<script type="text/javascript" charset="utf8" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js"></script>
<script type="text/javascript" charset="utf8">
$(document).ready(function(){
var images = document.getElementsByTagName('img');
for (var i = 0; i < images.length; i++) {
var image = images[i];
var parentElement = image.parentElement;
var a = document.createElement('a');
a.href = image.getAttribute('src');
a.appendChild(image);
parentElement.appendChild(a);
}
});
</script>
// By img element object
// (used by the functions below)
var addImageLink = function( elem, target ){
if( !elem || !( 'tagName' in elem ) ){ return; }
var image = elem;
var parent = image.parentElement;
var a = document.createElement( 'a' );
a.href = image.getAttribute( 'src' );
if( target ){ a.setAttribute( 'target', target ); }
a.appendChild( image );
parent.appendChild( a );
};
// By img element id
// <img src="images/gallery/1.jpg" id="image1" />
// <script> addImageLinkById( 'image1' ); </script>
var addImageLinkById = function( id, target ){
addImageLink( document.getElementById( id ), target );
};
// By img element src (first match)
// <img src="images/gallery/1.jpg"/>
// <script> addImageLinkBySrc( '/1.jpg' ); </script>
var addImageLinkBySrc = function( src, target ){
var image, images = document.getElementsByTagName( 'img' );
if( typeof src == 'undefined' ){ src = ''; }
for( var i = 0; i < images.length; i++ ){
if( images[ i ].src.indexOf( src ) < 0 ){ continue; }
addImageLink( images[ i ], target ); return;
}
};
var addImageLinks = function( filter, target ){
var parent, a, image;
var images = document.getElementsByTagName( 'img' );
var hasTarget = ( typeof target != 'undefined' );
var hasFilter = ( typeof filter != 'undefined' );
for( var i = 0; i < images.length; i++ ){
image = images[ i ];
if( hasFilter && ( image.src.indexOf( filter ) < 0 ) ){ continue; }
// Skip over already-wrapped images, by adding an attribute
if( image.getAttribute( 'data-wrapped-link' ) ){ continue; }
image.setAttribute( 'data-wrapped-link', '1' );
// Add the link
parent = image.parentElement;
a = document.createElement( 'a' );
a.href = image.getAttribute( 'src' );
if( hasTarget ){ a.setAttribute( 'target', target ); }
a.appendChild( image );
parent.appendChild( a );
// We inserted a "new" image, so go back one step so we don't miss any
// (due to being inside the "i < images.length" loop)
i--;
}
};
// Then:
// <img src="images/gallery/a.jpg"/>
// <img src="images/gallery/b.jpg"/>
// <img src="images/gallery/c.jpg"/>
// <img src="images/icons/a.gif"/> <- ignored
// Near bottom of the page (or in an onLoad handler, etc):
// </script> addImageLinks( 'images/gallery/', '_blank' ); </script>