Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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使用变量获取img src?_Jquery_Html_Variables_Image - Fatal编程技术网

jQuery使用变量获取img src?

jQuery使用变量获取img src?,jquery,html,variables,image,Jquery,Html,Variables,Image,我已经读了100多篇关于这方面的文章,但无论我做什么,我都无法做到我想做的。我的问题是我从我的脚本中获取我的img src=“url”。当我提醒它时,它会给我想要的正确输入,但是当我把它放在attr()标记中时,我只是在图像的路径中发布“imgSrc”。当我在mouseover函数中对图像进行硬编码时,它实际上可以工作 这是我的剧本 <script> $(document).ready(function(){ //Hides the images

我已经读了100多篇关于这方面的文章,但无论我做什么,我都无法做到我想做的。我的问题是我从我的
脚本中获取我的
img src=“url”
。当我提醒它时,它会给我想要的正确输入,但是当我把它放在
attr()
标记中时,我只是在图像的路径中发布“
imgSrc
”。当我在mouseover函数中对图像进行硬编码时,它实际上可以工作

这是我的剧本

  <script>
    $(document).ready(function(){

            //Hides the images
            $('#imgwrap img').hide();

            //Create variables for Link & Images
            $('a.imgflash').mouseover(function(){
                var linkRel     =   $(this).attr('rel');

                $('#imgwrap img').each(function(i,ele){
                    if($(this).attr('rel') == linkRel) {
                        var imgSrc      =   $(this).attr('src');
                    }               
                });

            });

            //Script that makes images apears
            //Mouseover Script
            $('a.imgflash').mouseover(function(){           
                $('#imgwrap img').attr("src", imgSrc).show();
            });
        });
    </script>

$(文档).ready(函数(){
//隐藏图像
$('imgwrap img').hide();
//为链接和图像创建变量(&I)
$('a.imgflash').mouseover(函数(){
var linkRel=$(this.attr('rel');
$('imgwrap img')。每个(函数(i,ele){
if($(this).attr('rel')==linkRel){
var imgSrc=$(this.attr('src');
}               
});
});
//制作图像的脚本
//鼠标悬停脚本
$('a.imgflash').mouseover(函数(){
$('#imgwrap img').attr(“src”,imgSrc.show();
});
});
这是我的HTML

<ul>
    <li><a rel="demo1" class="imgflash" href="#">demo1</a></li>
    <li><a rel="demo2" class="imgflash" href="#">demo2</a></li>
    <li><a rel="demo3" class="imgflash" href="#">demo3</a></li>
</ul>
<div id="imgwrap" style="width:300px; height:300px; overflow:hidden;">
<img rel="demo1" src="images/lux.jpg">
    <img rel="demo2" src="images/cover.jpg">
    <img rel="demo3" src="images/cover2.jpg">
</div>
我希望你能帮助我如何让我的变量“imgSrc”像我想在mouseover函数中那样发布

        var imgSrc = '';
        //Create variables for Link & Images
        $('a.imgflash').mouseover(function(){
            var linkRel     =   $(this).attr('rel');

            $('#imgwrap img').each(function(i,ele){
                if($(this).attr('rel') == linkRel) {
                    imgSrc      =   $(this).attr('src');
                }               
            });

        });
您需要在mouseover事件函数之外定义imgSrc变量,因为当您试图将它应用于
attr
时,它不存在

您可以在此处阅读有关局部/全局变量的更多信息:


不需要两个鼠标悬停处理程序。让你的第一个人同时做两件事:

$(document).ready(function() {

    //Hides the images
    $('#imgwrap img').hide();

    //Create variables for Link & Images
    $('a.imgflash').mouseover(function() {
        var linkRel = $(this).attr('rel');

        $('#imgwrap img').each(function(i, ele) {
            if ($(this).attr('rel') == linkRel) {
                $(this).show();
            }
        });

    });
});
或者更好:

$(document).ready(function() {

    //Hides the images
    $('#imgwrap img').hide();

    //Create variables for Link & Images
    $('a.imgflash').mouseover(function() {
        var linkRel = $(this).attr('rel');
        $('#imgwrap img[rel="'+linkRel+'"]').show();
    });
});

属性是否已弃用?请改用
prop
。除非低于1.6Hmm版。。。那我的错。。。我可以发誓我在什么地方读到过。现在我遇到了更多的问题,如果我再次陷入困境,我会发帖:)@Nopzen很高兴我能帮上忙!通常,如果答案对您有效,您会接受它,以便我们知道您的问题已得到解决。您有两个鼠标悬停处理程序用于
$('a.imgflash')
-在其中一个中创建的局部变量(例如imgSrc)在另一个中不可用。为什么是两个?从代码中我甚至不知道你想做什么。你能解释一下你想在鼠标上方发生什么吗?