2014-07-25 80 views
-1

真的很愚蠢的問題,但我不能得到這個工作:傳遞兩個參數爲Javascript功能

http://jsfiddle.net/t4R46/

function showOne(parentid, childid){ 
alert(parentid); 
alert(childid); 
} 

<a href="#" onClick=showOne('div1', 'div2')>91</a> 

基本上我想要兩個參數傳遞給函數,但我得到: 「Uncaught SyntaxError:Unexpected token}」

有沒有智能網站來驗證javascripts? Chrome中的錯誤報告有點不盡人意。

/帕特里克

+1

右鍵單擊' - >'檢查元素。除非值用引號引起來,否則HTML屬性的值不能包含空格。 –

+0

我更新了你的小提琴:http://jsfiddle.net/t4R46/1/ – chf

+1

你的小提琴也會失敗,因爲你的js代碼是在一個onload回調中,它有一個選項可以在左邊改變這個 –

回答

2

你需要的屬性值引號包圍:

<a href="#" onClick="showOne('div1', 'div2')">91</a> 
<!--  here -----^ and here -----------^ --> 

在HTML中,屬性值只能不會有行情,如果沒有空間(或一些其他字符)在裏面。既然你想設置的值有一個空格,你需要把它放在引號中。

Is there any smart site to verify javascripts in? The error reporting in ie Chrome leaves a bit to be desired.

您正在尋找「lint」工具。可能是最着名的用於JavaScript的lint工具是Crockford的jslint。但是這是沉重受他的個人風格和意見的影響,所以有一個積極的叉叫jshint這是非常受歡迎。有兩個在線和命令行版本。一些IDE還提供皮棉選項,例如JetBrains的WebStorm

+0

謝謝你你的答案。 試過但它沒有工作: http://jsfiddle.net/t4R46/6/ – PatrikJ

+2

@ user3558914,正如我在我上面的評論中提到的,你的jsfiddle仍然會失敗,因爲onload選項被設置爲小提琴 –

+3

@ user3558914:由於Patrick已經在您的問題的評論中告訴過您,您需要將左側的第二個下拉列表從「onload」更改爲「no wrap」選項之一:http:// jsfiddle。 net/t4R46/7/jsFiddle有一個非常令人驚訝的默認設置,它將所有的JavaScript代碼都封裝在'window.onload = function(){/ * ...您的代碼在這裏...... * /};'但函數從'onXyz'屬性調用*必須是全局變量(這是不使用'onXyz'屬性的原因之一)。如果你的代碼被封裝在一個函數中,你的函數不再是全局的。 –

1

你想念"

<a href="#" onClick="showOne('div1', 'div2')">91</a> 

FIDDLE

+0

謝謝你的回答。試過了,但它沒有奏效:jsfiddle.net/t4R46/6 – PatrikJ

+0

你是否在你自己的代碼中嘗試了我的代碼,在JSfiddle中,當我將這兩個html + js代碼放在一起時,它會工作。這意味着我可能錯過了一些jsfiddle的東西,但代碼將工作 – manish

2

雙引號會有所幫助。

<a href="#" onClick="showOne('div1', 'div2')">91</a> 
+0

謝謝你的回答。試過了,但沒有奏效:jsfiddle.net/t4R46/6 – PatrikJ