2010-08-24 289 views
0

我有許多鏈接,點擊時,會將變量傳遞給頁面的另一部分。變量未發送到其他函數

然而,由於某種原因,我無法弄清楚!我錯過了什麼?

<head> 
<script type="text/javascript"> 

function myFunction(a){ 
    myid="Hi There!"+a; 
    return myid; 
} 
</script> 
</head> 
<body> 
<a href="#" OnClick="myFunction(123456);">Click Me</a><br /> 


<script type="text/javascript"> 
document.write(myid); 
</script> 

</body> 

回答

3

你在這裏有點混淆了。即使函數返回一個值,它也沒有任何東西可以返回。試試這個:

<head> 
    <script type="text/javascript"> 

    function myFunction(a){ 
     myid="Hi There!"+a; 
     document.getElementById("debug").innerHTML = myid; 
    } 
    </script> 
    </head> 
    <body> 
    <a href="#" OnClick="myFunction(123456);">Click Me</a><br /> 


<div id="debug"></div> 

</body> 
+0

怎麼寫'返回false;在''myFunction' – 2010-08-24 13:17:32

+0

回報如果您不需要在此實例中返回值,則不需要false,只需將返回值完全取出即可。 – 2010-08-24 13:33:54

+0

@Rakesh - 此外,您必須在'onclick'屬性中使用'return myFunction(...)',否則返回'false'不會阻止默認行爲。 – 2010-08-24 14:08:08

0

如果你想稍後使用它,你需要聲明myid作爲一個全局變量。其範圍目前僅在myFunction內。另外document.write()函數只會在運行時執行,所以你需要有另一個函數執行每次點擊,或者只是將兩者結合起來。

+0

你測試了嗎?我不認爲這是有效的... – Nick 2010-08-24 13:16:15

+0

我相信如果變量沒有在它前面的VAR,它是全局的範圍,並不是因爲它是所需的返回值在這裏有任何區別。 – 2010-08-24 13:17:44

+0

哎呀!你想做什麼?在我測試之前輸入 – 2010-08-24 13:18:12

0

當您單擊鏈接時,發生的所有情況都是調用myFunction(),它將返回字符串。行document.write(myid);不再執行,因此沒有任何可見的東西。

-2

下面是一些類似的東西,一個簡單的例子:

<a href="#" type="button" OnClick="myf=myfunc(1234);alert(myf)" value="clickme">clickme</a> or <a href="#" type="button" OnClick="myf=myfunc(1234);document.getElementById('other').value=myf;" value="clickme">ClickMeAlso</a> 
<input id='other' type='text'/> 

<script> 
function myfunc(a) { 
    return a + " howdy"; 
}; 
</script> 

您可以在這裏的行動看到這一點:http://jsfiddle.net/5Sbn2/

+4

頁面完成後調用document.write將會清除頁面。 – Quentin 2010-08-24 13:47:39

+0

好的,但它確實證明了這一技術,OP可以決定需要做什麼。 OP示例代碼中的注意事項相同嗎? – 2010-08-24 14:56:23

+0

儘管OP在那裏有docmment.write,但是我不認同模仿這種做法是值得的。 – 2010-08-24 19:00:07

0
<script> 
// This is global 
var myid = '' 

myfunc = function(a){ 
    myid = "Hi There!" + a; 
    alert(myid); 
} 

test_global = function(){ 
    alert(myid); 
} 
</script> 

<a href="javascript:void(0);" onclick="myfunc(12345);">Set MYID</a> 
<input type="button" onclick="test_global();" value="Test MYID" />