dojo.destroy()使节点为空,而不是删除它

时间:2013-07-11 05:34:39

标签: javascript html dom dojo

我有一张表,动态添加和删除行。当我需要删除一些元素时,它不会删除,它只会使它变得空虚。 这是删除功能:

        function remove() {
            dojo.forEach(
                dojo.query(".selectedMail"),
                function(selectTag) {
                     dojo.destroy(selectTag);
                }
              );
        }

这里是选择功能:

        var myBehavior = {
            ".row": {
                //onclick: dojo.addClass(evt.target, "buttonDown")
                onmousedown: function(evt) {
                    if(dojo.hasClass(evt.target, "selectedMail"))
                        dojo.removeClass(evt.target, "selectedMail");
                    else
                        dojo.addClass(evt.target, "selectedMail");
                }
            }
        };

这是表:

    <table>
        <tbody id="tbody123">
            <tr class="row">
                <td >simplesimplesimplesimplesimple</td>
            </tr>
            <tr class="row">
                <td>simplesimplesimplesimplesimple</td>
            </tr>
            <tr class="row">
                <td>simplesimple</td>
            </tr>
            <tr class="row">
                <td>simple</td>
            </tr>
        </tbody>
    </table>
删除后执行

执行剩余: 这里是完整的来源: http://pastebin.com/0YN5TKvG

2 个答案:

答案 0 :(得分:1)

dojo.destroy工作得很好,你需要更仔细地检查你的DOM。您正在向td元素添加“selectedMail”类,dojo.destroy正在完全删除该元素,并且(当然)仅保留父tr元素。

答案 1 :(得分:0)

而不是

dojo.destroy(selectTag);

您可以使用dojo.empty

dojo.empty(selectTag);