2016-01-20 223 views
0

好吧,这个代码工作正常如何将动态值传递给Javascript函数?

<html> 
<body> 
<p>This is question.</p> 
<img src="http://cliparts.co/cliparts/qTB/5yd/qTB5ydpzc.gif" alt="show answer" height="42" 

width="42" id="showHideImg" onclick="myFunction()"> 
<p id="showHide">This answer.</p> 
<script type="text/javascript"> 

function myFunction() { 
    if (document.getElementById("showHide").style.display=="none") 
    { 
     document.getElementById("showHide").style.display="block"; 
    } 
    else 
    { 
     document.getElementById("showHide").style.display="none"; 
    } 
} 

</script> 

</body> 
</html> 

然而,在真正的应用程序,我得到了许多图像& <p>像如下:

<p>This is question1.</p> 
<img src="http://cliparts.co/cliparts/qTB/5yd/qTB5ydpzc.gif" alt="show answer" height="42" 

width="42" id="showHideImg" onclick="myFunction()"> 
<p id="showHide1">This answer1.</p> 

<p>This is question2.</p> 
<img src="http://cliparts.co/cliparts/qTB/5yd/qTB5ydpzc.gif" alt="show answer" height="42" 

width="42" id="showHideImg" onclick="myFunction()"> 
<p id="showHide2">This answer2.</p> 

.......question 3... 4....5... 

我的问题是,如何修改myFunction()使它可以动态申请很多images

我试过像这样:

<p>This is question1.</p> 
<img src="http://cliparts.co/cliparts/qTB/5yd/qTB5ydpzc.gif" alt="show answer" height="42" 

width="42" id="showHideImg" onclick="myFunction(1)"> 
<p id="showHide1">This answer1.</p> 
<script type="text/javascript"> 

function myFunction(var no) { 
    if (document.getElementById("showHide"+no).style.display=="none") 
    { 
     document.getElementById("showHide"+no).style.display="block"; 
    } 
    else 
    { 
     document.getElementById("showHide"+no).style.display="none"; 
    } 
} 

但它不工作

+1

检查您的控制台。你有一个语法错误。不要用'var'声明参数。你应该只有'不',而不是'无'。 –

回答

1

声明你的方法参数时,您不需要var

尝试以下操作:

function myFunction(no) { 
    if (document.getElementById("showHide"+no).style.display=="none") 
    { 
     document.getElementById("showHide"+no).style.display="block"; 
    } 
    else 
    { 
     document.getElementById("showHide"+no).style.display="none"; 
    } 
} 
1

在刚刚通过它,离开关var,就大功告成了。

我重构了一堆东西,虽然,做有意义的名称,例如,

function toggleEl(num) { 
    var el = document.getElementById("showHide" + num) 
     , currStyle = el.style.display 
     , nextStyle = curr === "none" ? "block" : "none" 
     ; 

    el.style.display = nextStyle; 
} 

(请注意,toggle()可能足以为你的最终需求。)

相关问题