首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RemoveChild不工作

RemoveChild不工作
EN

Stack Overflow用户
提问于 2012-02-17 13:10:33
回答 3查看 5.9K关注 0票数 0

我在使用javascript removeChild函数时遇到了问题。下面是我的脚本:

代码语言:javascript
复制
    ////function to add element by ID////
        var i=1;
        $("#buttonAdd").live('click',function() { 
        $("#list1 li:last-child").parent().append('<li>'+
                                                    '<label for=njajal[]>njajal'+
                                                    '<textarea  class="tinymce" name="njajal[]" id="aaa'+i+'"></textarea>'+
                                                    '<span><a class="delIt" id="'+i+'"><b>Hapus</a></span></label>'+
                                                '</li>');
        tinyMCE.execCommand('mceAddControl', false, 'aaa'+i);
        console.log('add '+i);
        i++;
    }); 

    ////Function to delete element by ID/////
    function delIt(eleId)  
    {
        d = document;  
        var ele = d.getElementById(eleId);  
        var parentEle = d.getElementById('njajal');  
        parentEle.removeChild(ele);  
    }

有什么问题吗?

下面是HTML代码:

代码语言:javascript
复制
<div id="form">
    <form method="post" action="">
        <fieldset>
            <ol id="list1">
                <li>        
                    <label for="njajal[]">njajal
                        <textarea name="njajal[]" class="tinymce" ></textarea>
                    </label>
                </li>
            </ol>
            <div id="addOpt">
                <a id="buttonAdd" class="bt"><b>Tambah</a>
            </div> 
        </fieldset>
    </form>
</div>

截图:

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-17 13:29:54

您在第一个函数中使用了jQuery,因此删除该元素的最简单方法是使用jQuery:

代码语言:javascript
复制
$('#myElementID').remove();

下面是你如何用普通的javascript来完成同样的事情:

代码语言:javascript
复制
var myElement = document.getElementById('myElementID');
myElement.parentNode.removeChild(myElement);
票数 2
EN

Stack Overflow用户

发布于 2012-02-17 13:32:47

编辑:

为了简单起见,请将>读作“的子级:

据我所知,问题是textarea > label > li > ol。唯一实际具有id的元素是<ol>,因此要删除标签(如图所示),请将delIt更改为:

代码语言:javascript
复制
function deleteLabelTextArea(){
   var elementRemove = document.getElementById("list1").firstElementChild.firstElementChild;
   elementRemove.parentNode.removeChild(elementRemove);
}

老生常谈:

由于我们看不到超文本标记语言,除了Marc B提到'njajal‘不是eleID的父元素之外,我不确定问题出在哪里。要解决这个问题,我建议:

代码语言:javascript
复制
function delIt(eleId){
   var ele = document.getElementById(eleId);
   ele.parentNode.removeChild(ele);
}
票数 1
EN

Stack Overflow用户

发布于 2012-02-17 16:46:58

到目前为止提出的解决方案都不起作用,因为tinymce不是文本区域!!Tinymce使用指定的html元素的内容进行初始化-在本例中是一个文本区域。在初始化之后,创建具有可内容编辑主体的iframe,其中用户可以编辑html内容。

为了摆脱tinymce编辑器,你需要首先关闭它:

代码语言:javascript
复制
tinymce.execCommand('mceRemoveControl', false, 'content'); // your textarea got no id, then tinymce uses 'content' as default editor id

其次,您可以删除初始的html元素,如labeltextarea作为您的问题显示的其他解决方案。

我只是想知道为什么你的页面上有两个小编辑器?对我来说,看起来你可能更喜欢只初始化其中一个,而不是在之后删除第二个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9323215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档