Javascript 如何让JQuery返回有效的imgsrc?

Javascript 如何让JQuery返回有效的imgsrc?,javascript,jquery,Javascript,Jquery,因此,我在一个div中有共享同一类的图像,并且一次为该图像的单个视图选择其中一个。在这个单一视图中,我想使用箭头在图像之间循环。共享同一类的图像具有连续的alt值 现在,我可以获取前面的alt值,并将单个视图中图像的src设置为该图像的源。但是,我似乎无法获得与下图相同的效果 $("#leftButton").click(function(){ var current= $('img[id="selected"]'); var altVal

因此,我在一个div中有共享同一类的图像,并且一次为该图像的单个视图选择其中一个。在这个单一视图中,我想使用箭头在图像之间循环。共享同一类的图像具有连续的alt值

现在,我可以获取前面的alt值,并将单个视图中图像的src设置为该图像的源。但是,我似乎无法获得与下图相同的效果

    $("#leftButton").click(function(){
            var current= $('img[id="selected"]');
            var altVal=current.attr("alt").valueOf()-1;
            if(altVal>=0)
            {
                var next= $('img[alt='+altVal+']');
                current.attr("id", "");
                next.attr("id", "selected");
                $("#embiggenImage").attr("src", next.attr("src"));
            }
        }
    );

    $("#rightButton").click(function(){
            var gal=$('img[class="galleryImage"]');
            alert(gal.length);
            var current= $('img[id="selected"]');
            var altVal=current.attr("alt").valueOf()+1;
            if(altVal<gal.length)
            {
                alert("inside");
                var next= $('img[alt='+altVal+']');
                current.attr("id", "");
                next.attr("id", "selected");
                $("#embiggenImage").attr("src", next.attr("src"));
            }
        }
    );
$(“#左按钮”)。单击(函数(){
当前变量=$('img[id=“selected”]”);
var altVal=current.attr(“alt”).valueOf()-1;
如果(altVal>=0)
{
var next=$('img[alt='+altVal+']');
current.attr(“id”,”);
next.attr(“id”,“selected”);
$(“#embigenimage”).attr(“src”,next.attr(“src”);
}
}
);
$(“#右按钮”)。单击(函数(){
var gal=$('img[class=“galleryImage”]”);
警报(加仑长度);
当前变量=$('img[id=“selected”]”);
var altVal=current.attr(“alt”).valueOf()+1;

如果(altVal如果“alt”的右键单击事件中的最终值为“01”,请在添加之前尝试使用
parseInt()
,如下所示:

parseInt(current.attr("alt").valueOf())+1;

问题在于这两条线之间的差异:

var altVal=current.attr("alt").valueOf()-1;
var altVal=current.attr("alt").valueOf()+1;
-
只有一个含义:减法。如果您在字符串上调用它,它将在操作之前转换为数字

+
有两种含义:添加和连接。如果你对一个数字调用它,它会添加。如果你对一个字符串调用它,它会连接。
attr
返回一个字符串(就像
valueOf
--我不确定这是什么意思),因此
+1
意味着“将添加
1
放在字符串的末尾”

您需要将该值转换为数字。我将使用:


您能提供一个复制/演示您的问题的方法吗?这是可行的,但我仍然不明白为什么它会附加它,而不是将它添加到值中,就像它在leftButton click函数中递减值一样。谢谢。我应该早点尝试,但它只是没有必要。@Anon“ymous,@lonesomeday的回答真的好得多。:)我明白了。谢谢你的解释。我假设valueOf将返回一个值而不是字符串。我想我应该研究一下。所谓值,我指的是基元(int)。我想我只是在OOP模式下。
var altVal = +current.attr('alt') + 1;