javascript - 为什么我的 jQuery empty 不起作用?

标签 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 中调试我的代码.

最佳答案

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

这是因为在内联处理程序中,document 位于 window 之前的范围内,而您的 clear 函数位于全局范围内,即window 用于浏览器。

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

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

function myClear() {
    $('#result').empty()
}

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

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

    $('.clear').click(function(){
        clear();
    });
});

关于javascript - 为什么我的 jQuery empty 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36574216/

相关文章:

javascript - CSS/JS 的 IE 问题

javascript - 如何使用粒子使用 HTML5 <canvas>

jquery - 从 json 对象获取键名

javascript - 如何在 JS 中的 Google map 上的标记上方添加文本?

javascript - 标记不会出现在 GeoChart 上,但 map 显示得很好

javascript - 如何在传单上放置带有 geojson 的数字标记

jquery - 可正确切换的 Accordion 样式列表

jquery - 如何检查可拖动元素是否到达可放置区域?

jquery - 从第三方将 Css 注入(inject) iframe

jquery - 使用 jQuery 检查 div 是否隐藏