Javascript:拆分和变量问题

时间:2011-07-07 14:50:36

标签: javascript variables split

在此代码执行中:

http://sandrayoon.com/UAI/www3/newpin.php

我写了一个JS函数,它抓取点击图标的图像源并将所需的单词提取到“nr”变量中:

var root='img/pins/'; 

var q=0; 

var nr;

function swapImg(ima){ 

//---extract pin----//

if(q==0)
{
nr = ima.getAttribute('src').split('/');
nr = nr[nr.length-1].split('.')[0]; 
nr = nr.split('1')[0];
}

else if(q==1)
{
nr = ima.getAttribute('src').split('/');
nr = nr[nr.length-1].split('.')[0]; 
nr = nr.split('2')[0];

}
//-----------------//


if(q==0)
{
ima.setAttribute('src',root+nr+'2.png');
q=1;
//document.write (nr); 


} 

else if(q==1)
{
ima.setAttribute('src',root+nr+'1.png');
q=0;
}


}

这样,每次点击图标时,它会将img src从“extractedword”1.png更改为“extractword”2.png,来回。

我的问题在于选择了多个图标然后选择了另一个图标 - 它会在“extractword”的末尾添加一个额外的“1”或“2”,搞乱img src链接。

我认为这是由所有图标共享同一个“nr”全局变量作为其提取的单词引起的,但当我在函数内部使用局部变量时,它仍然不起作用。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我认为你的问题可能与q作为一个全球性问题有关。

var root='img/pins/'; 

function swapImg(ima){ 
    //---extract pin----//
    var nr = ima.getAttribute('src').split('/');
    nr = nr[nr.length-1].split('.')[0]; 

    var q = nr.substring(nr.length-1,nr.length); 


    if(q==1) {
        nr = nr.split('1')[0];
        ima.setAttribute('src',root+nr+'2.png');
    } else if(q==2) {
        nr = nr.split('2')[0];
        ima.setAttribute('src',root+nr+'1.png');
    }

    //-----------------//

}