为什么我的jQuery空无效?

Say*_*iss 7 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>
Run Code Online (Sandbox Code Playgroud)

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

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

MrC*_*ode 11

调用clear()内联处理程序实际上是调用其他调用document.clear()的函数,因此永远不会调用您的函数.

这是因为在内联处理程序中,document以前是在范围内,window并且您的clear函数位于全局范围内,这适用window于浏览器.

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

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

function myClear() {
    $('#result').empty()
}
Run Code Online (Sandbox Code Playgroud)

或者,我宁愿避免使用内联处理程序,也避免污染全局范围.

$(function(){
    function clear() {
        $('#result').empty();
    }

    $('.clear').click(function(){
        clear();
    });
});
Run Code Online (Sandbox Code Playgroud)