为什么我不能将jquery选择器对象从内联HTML元素传递给函数?

时间:2012-05-29 00:23:01

标签: javascript jquery

我遇到了一个意外错误,我在调试时遇到了一些麻烦。 我得到的错误是:

Uncaught SyntaxError: Unexpected token }

这是HTML:

<html>
<head>
<script type="text/javascript"src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>

<form class="search" action="search" method="get">
<input type="text" id="search-string" />
<button type="button" onclick="return clearInputValue( $("#search-string") )">
<span class="clear-icon"></span>
</button>
</form>

 <script>
 var  clearInputValue = function(a) {

 // Ultimately I will check if the object passed to this function has a value greater than 1, and if so, I will clear the input

   return false;

 };

 </script>


</body>
</html>

2 个答案:

答案 0 :(得分:2)

您需要使用一组不同的引号。

<button type="button" onclick="return clearInputValue( $('#search-string') )">

请注意单引号。

另外,作为旁注,不建议使用内联javascript。最好将内容(html)与行为(javascript)分开,就像对待演示文稿(css)一样。

答案 1 :(得分:2)

首先,你刚刚终止了字符串。将其更改为:

onclick="return clearInputValue($('#search-string'))"

其次,您应该使用jQuery附加事件。

$(function(){

    function clearInputValue(a) {
        return false;
    };


    $('button').on('click',function(){
        clearInputValue($('#search-string'));
    });

});