2016-08-12 141 views
-2

我有一个javascript函数,我想调用它12次。 所以,我没有这样的:javascript函数只执行一次

在这里,我有12张图片:

<img id="img1" src=""> </img> 
<img id="img2" src=""> </img> 
<img id="img3" src=""> </img> 
<img id="img4" src=""> </img> 
<img id="img5" src=""> </img> 
<img id="img6" src=""> </img> 
<img id="img7" src=""> </img> 
<img id="img8" src=""> </img> 
<img id="img9" src=""> </img> 
<img id="img10" src=""> </img> 
<img id="img11" src=""> </img> 
<img id="img12" src=""> </img> 

这里的函数定义:

function addImageSource(id,another_variable) { 
     var imageSource = "http://..."+ another_variable + "test"; 
     $("#img" + id).attr("src", imageSource); 
    } 

在这里,我把它叫做:

  var itm_id = 1; 
      while(itm_id < 13){ 
        addImageSource(item_id, "another_variable"); 
        itm_id++ 
      } 

为什么这个函数只执行一次?有人可以告诉我为什么吗?

+0

如果你把它一个时间,然后它会被称为单个时间..难怪在那.. –

+0

你为什么期望它被称为不止一次? – SLaks

+3

你好像混合了'if'和'while'。 – JJJ

回答

0

你需要使用一个for循环,所以你会希望像

for (var itm_id = 1; itm_id < 13; itm_id++){ 
    addImageSource(itm_id, "another_variable"); 
} 
+2

而'itm_id'而不是'item_id'作为参数。 –

0

您需要将一个循环内的函数调用。现在你正在使用一个有条件的决策构造,而不是一个循环。

替换:

var itm_id = 1; 
 
if (itm_id < 13){ 
 
    addImageSource(item_id, "another_variable"); 
 
    itm_id++ 
 
}

随着一个循环是这样的:

for (var itm_id=1 ; itm_id < 13 ; itm_id++) { 
 
    addImageSource(itm_id, "another_variable"); 
 
}

0

您需要的,而不是如:

for (var itm_id = 1 ; itm_id < 13; itm_id++) { 
     addImageSource(itm_id, "another_variable"); 
    } 

还你做这一行错误:

addImageSource(item_id, "another_variable"); 

它应该是:

addImageSource(itm_id, "another_variable");