6

我的问题是相当基本的,但我不明白为什么,在下面的代码中,在按钮单击时,仅按钮消失,而不是整个 div:

<script>
    function remove(id) {
        //get the element node
        element = document.getElementById(id);

        //remove the element from the document
        document.removeChild(element);
    }
</script>

<div id="intro" class="jumbotron">
    <h1>Your Offline Web Dictionary!</h1>
    <p class="lead">

    <div class="controls">
        <input class="span7 " type="text" placeholder=" " name="key">
    </div>
    <div>
        <button class="btn btn-large btn-success" onclick="remove(intro)">
            Dictionary Search
        </button>
    </div>
</div>

JSFiddle

4

3 回答 3

4

问题是 button 元素有一个 remove 属性,所以它被调用而不是你的 remove 函数。还有字符串的东西。

<button class="btn btn-large btn-success" onclick="window.remove('intro');console.log(this.remove);">
    Search
</button>

http://jsfiddle.net/HMEVd/76/

于 2013-06-08T22:32:22.577 回答
2

两个问题。首先,intro应该是一个字符串,而不是一个标识符,所以remove('intro')在你的 onclick 中使用。

document.rwmoveChild是不正确。removeChild应该在要删除的元素的父级上调用。通常使用:

element.parentNode.removeChild(element);
于 2013-06-08T22:28:36.297 回答
1

intro应该作为字符串而不是变量发送给函数,即'intro'

此外,您必须重命名您的函数,例如,removeById而不是remove. 然后它完美地工作。

该函数remove实际上做了一些完全不同的事情。(您的函数在命名时甚至不会被调用,remove正如您可以通过将警报消息看到的那样。)

function removeById(id) {
        //get the element node
        element = document.getElementById(id);

        //remove the element from the document
        document.removeChild(element);
}

...
<button class="btn btn-large btn-success" onclick="removeById('intro')">
于 2013-06-08T22:24:30.080 回答