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 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 に答える
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 に答える