为什么我的jQuery空无效?

时间:2016-04-12 13:05:09

标签: javascript jquery

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script src="https://code.jquery.com/jquery-2.2.3.min.js"></script>
</head>
<body>

<button type="button" onclick="submit();">launch</button>
<button type="button" onclick="clear();">clear</button>


<div>
    Result:<br>
    <div id="result">
    </div>
</div>
<script>
    function clear() {
        $('#result').empty()
    }

    function submit() {
        $('#result').append('<div>xxxxx</div>')
    }
</script>
</body>
</html>

Launch按钮效果很好但clear没有。我在控制台中运行$('#result').empty(),它按预期清除div。

您可以在jsfiddle中调试我的代码。

6 个答案:

答案 0 :(得分:11)

在内联处理程序中调用 clear()实际上是调用其他名为 document.clear()的东西,因此永远不会调用你的函数。

& #xA;&#xA;

这是因为在内联处理程序中, document window 之前的范围内,并且 clear 函数是在全局范围内,即浏览器的 window

&#xA;&#xA;

您可以将函数名称更改为其他内容

&#xA; &#xA;
 &lt; button type =“button”onclick =“myClear();”&gt; clear&lt; / button&gt;&#xA;&#xA; function myClear(){&#xA; $('#result')。empty()&#xA;}&#xA;  
&#xA;&#xA;

或者我更愿意避免使用内联处理程序并避免使用污染全局范围。

&#xA;&#xA;
  $(function(){&#xA; function clear(){&#xA; $('#result')。 empty();&#xA;}&#xA;&#xA; $('。clear')。click(function(){&#xA; clear();&#xA;});&#xA; });&#XA;  
&#XA;

答案 1 :(得分:2)

这是因为clear正在调用函数 document.clear(),它首先出现在内联HTML调用的考虑范围内。

&#xA;&#xA;

尝试将您的功能重命名为其他任何内容。

&#xA;

答案 2 :(得分:1)

clear是一个保留字,将其重命名为

答案 3 :(得分:1)

好像你的.empty()正在运作。这里的问题是clear()函数没有被调用。我尝试将clear()更改为clear1()并且它有效。

答案 4 :(得分:0)

只需使用

设置即可

$('.textboxElement').val("");

而不是清楚。我不确定为什么你的明确无效,但这是另一种方式。也许你的方法名称正在被提取?尝试将其命名为'foo'

答案 5 :(得分:0)

问题是你的功能名称。 “清除”已被定义为document.clear,因此它不会影响您的代码。将您的函数重命名为clearContent。