Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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变量中存储img src_Javascript_Onclick - Fatal编程技术网

在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);
                }
            };
        }
    }
};