2010-09-28 35 views
1

我在嘗試添加if/else語句onclick屬性時出現語法錯誤。這是什麼語法?JavaScript:如何在onclick屬性中執行if/else語句?

<div onclick="var element = $('#selector'); if (element.val() == 'something') { alert('hello'); } else { alert('goodbye'); } "> 
    Click here 
    <input type="hidden" id="selector" value="something" /> 
</div> 

...是的,我必須在onclick屬性中有這個javascript(不能移動到一個函數)。

回答

2

Javascript DOM元素沒有val()函數。 (你在想jQuery嗎?)

Change .val() to .value


如果你在考慮jQuery,你可以寫if ($('#selector').val() == 'something')

+0

對不起,搞混了因爲我使用jQuery。我更新了我的代碼示例,但這仍然不是我遇到的問題。 – Andrew 2010-09-28 20:46:05

+0

@Andrew:[你的代碼工程](http://jsfiddle.net/mzT8R/2/)。 – SLaks 2010-09-28 20:50:02

5

.val()是一個jQuery方法。您想要訪問DOM元素的value屬性。

if (element.value == 'something') { 

或者創建一個jQuery對象,如果您有jQuery的加載:

if ($(element).val() == 'something') { 

如果採取這種方法,你總是可以使用jQuery選擇:

if ($('#selector').val() == 'something') { 
+0

對不起,自從我使用jQuery以來混淆了。我更新了我的代碼示例,但這仍然不是我遇到的問題。 – Andrew 2010-09-28 20:46:26

+1

@Andrew - 我沒有得到任何錯誤[使用你的代碼](http://jsfiddle.net/VA3pT/)。錯誤說了什麼,以及您使用的瀏覽器是什麼?另外,你確定你有jQuery加載? – user113716 2010-09-28 20:51:39