在javascript变量中存储img src
当我单击一个图像时,我想将特定的图像在javascript变量中存储img src,javascript,onclick,Javascript,Onclick,当我单击一个图像时,我想将特定的图像src存储在一个Javascript变量中。我该怎么做?请记住 更新 仅限JS- var links=document.getElementsByTagName(“a”); 变量大小=links.length; 对于(变量i=0;i
src
存储在一个Javascript变量中。我该怎么做?请记住
更新
仅限JS-
var links=document.getElementsByTagName(“a”);
变量大小=links.length;
对于(变量i=0;i
为使用代理事件,单击文档
,以提高效率,并获取的父节点
这里有一种方法,可以使用rel=“img id”
将a
与img
关联,打印出img.src
:
HTML
<div>
<img id="img-1" src="http://upload.wikimedia.org/wikipedia/commons/thumb/2/26/YellowLabradorLooking_new.jpg/260px-YellowLabradorLooking_new.jpg"/>
<a href="#" class="img-hover" rel="img-1"></a>
</div>
您是指图像数据中的源,还是仅指img src
属性值?像$a.sibbins('img').prop('src')
?你的意思是要将图像的url存储在js变量中,还是将图像的实际二进制数据存储在js变量中?顺便说一句,寻找纯javascript(而不是jquery)亵渎!没有Javascript,jQuery万岁!(当然我是在开玩笑,我不知怎么地自动跳过了,你得到的答案可能是我的错。对不起。还要注意,纯Javascript DOM行走更复杂。)当然,除非,您为您在rel
或数据img id
属性中引用的img
存储id
,这将大大简化答案。很好!有一个纯javascript的方法吗?谢谢。您知道如何在不使用jquery的情况下执行此操作吗?如何在JS变量中存储图像的路径,用户可以通过单击浏览按钮为其选择该变量?每次单击页面?我想这是一种方法。在我看来,document.getElementsByTagName
是一种“更干净”的方法,我仍然觉得有点淘气,认为@JaredFarrish委托比每个图像上的事件更有效。这就是像jQuery这样的库如何建议处理事件(并使用.on()
函数推送事件)。是的,但它不一定要在上,不是吗?(编辑:虽然,我能从代表的角度理解你说的话。我只是觉得很恶心,我想我可能会忘记的。)@JaredFarrish是的,这只是为了演示的目的。我会在所有的图片周围放一个元素。我试着让他的HTML保持原样。我的整个答案围绕着操纵标记,使用rel
(或者我在问题下的评论中提到的自定义属性)将a
链接到它对应的img
。事件附件比我的示例中使用的el.onclick
更好。旧习惯很难放弃,但我认为rel
比DOM遍历给了设计者更多的自由度,尽管两者在不同的时间都很有用。
$("a").on("click", function() {
alert ( $(this).siblings("img").attr("src") );
});
var links = document.getElementsByTagName("a");
var size = links.length;
for ( var i = 0; i < size; i++ ) {
links[i].addEventListener("click", function() {
alert( this.previousSibling.previousSibling.getAttribute("src") );
}, false);
}
document.addEventListener( 'click', function( event ) {
var a = event.target;
if( a.tagName.toLowerCase() == 'a' ) {
var src = a.parentNode.getElementsByTagName( 'img' )[0].src;
console.log( src );
};
}, false );
<div>
<img id="img-1" src="http://upload.wikimedia.org/wikipedia/commons/thumb/2/26/YellowLabradorLooking_new.jpg/260px-YellowLabradorLooking_new.jpg"/>
<a href="#" class="img-hover" rel="img-1"></a>
</div>
window.onload = function(){
var links = document.getElementsByTagName('a'),
c_links = links.length,
link;
while (c_links--){
link = links[c_links];
if (link.className.indexOf('img-hover') > -1) {
link.onclick = function(){
var img = document.getElementById(this.rel);
if (img) {
console.log(img.src);
}
};
}
}
};