Javascript RemoveChild不起作用
我在使用javascript removeChild函数时遇到问题。 这是我的剧本:Javascript RemoveChild不起作用,javascript,tinymce,Javascript,Tinymce,我在使用javascript removeChild函数时遇到问题。 这是我的剧本: ////function to add element by ID//// var i=1; $("#buttonAdd").live('click',function() { $("#list1 li:last-child").parent().append('<li>'+
////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);
}
///按ID添加元素的函数////
var i=1;
$(“#buttonad”).live('click',function(){
$(“#list1 li:last child”).parent().append(“”+
“njajal”+
''+
“哈布斯”+
“ ”);
tinyMCE.execCommand('mceAddControl',false,'aaa'+i);
console.log('add'+i);
i++;
});
////函数按ID删除元素/////
函数delIt(eleId)
{
d=文件;
var ele=d.getElementById(eleId);
var parentEle=d.getElementById('njajal');
父母移除儿童(ele);
}
有什么问题
以下是HTML代码:
<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>
njajal
坦巴
镜头:
您在第一个函数中使用jQuery,因此删除该元素的最简单方法是使用jQuery:
$('#myElementID').remove();
以下是如何使用纯javascript完成同样的任务:
var myElement = document.getElementById('myElementID');
myElement.parentNode.removeChild(myElement);
在第一个函数中使用jQuery,因此删除该元素的最简单方法是使用jQuery:
$('#myElementID').remove();
以下是如何使用纯javascript完成同样的任务:
var myElement = document.getElementById('myElementID');
myElement.parentNode.removeChild(myElement);
编辑:
要使事情变得更简单,请将
读为“的孩子:
从我所能看出的问题是textarea>label>li>ol
。实际具有id的唯一元素是
,因此要删除标签(如图所示),请将delIt更改为:
function deleteLabelTextArea(){
var elementRemove = document.getElementById("list1").firstElementChild.firstElementChild;
elementRemove.parentNode.removeChild(elementRemove);
}
旧答案:
由于我们看不到HTML,我不确定问题出在哪里,除了Marc B提到“njajal”不是eleID的父项之外。要解决这个问题,我建议:
function delIt(eleId){
var ele = document.getElementById(eleId);
ele.parentNode.removeChild(ele);
}
编辑:
要使事情变得更简单,请将
读为“的孩子:
从我所能看出的问题是textarea>label>li>ol
。唯一实际具有id的元素是
,因此要删除标签(如图所示),请将delIt更改为:
function deleteLabelTextArea(){
var elementRemove = document.getElementById("list1").firstElementChild.firstElementChild;
elementRemove.parentNode.removeChild(elementRemove);
}
旧答案:
由于我们看不到HTML,我不确定问题出在哪里,除了Marc B提到“njajal”不是eleID的父项。要解决这个问题,我建议:
function delIt(eleId){
var ele = document.getElementById(eleId);
ele.parentNode.removeChild(ele);
}
目前提出的解决方案无法奏效,因为tinymce不是textarea!! Tinymce使用指定html元素的内容进行初始化,在本例中为textarea。初始化后,将创建一个带有contenteditable主体的iframe,用户可以在其中编辑html内容 为了摆脱tinymce编辑器,您需要先关闭它:
tinymce.execCommand('mceRemoveControl', false, 'content'); // your textarea got no id, then tinymce uses 'content' as default editor id
其次,您可以删除初始html元素,如label
和textarea
,正如其他问题解决方案所示
我只是想知道为什么你的页面上有两个tinymce编辑器?
对我来说,您可能更喜欢只初始化其中一个,而不是在之后删除第二个。目前提供的解决方案不起作用,因为tinymce不是textarea!! Tinymce使用指定html元素的内容进行初始化,在本例中为textarea。初始化后,将创建一个带有contenteditable主体的iframe,用户可以在其中编辑html内容 为了摆脱tinymce编辑器,您需要先关闭它:
tinymce.execCommand('mceRemoveControl', false, 'content'); // your textarea got no id, then tinymce uses 'content' as default editor id
其次,您可以删除初始html元素,如label
和textarea
,正如其他问题解决方案所示
我只是想知道为什么你的页面上有两个tinymce编辑器?
对我来说,您可能更喜欢只初始化其中一个节点,而不是随后删除第二个节点。njajal是“eleID”节点的直接子节点吗?它必须是直接的父子关系-如果两个节点之间有其他层,则不能使用removeChild。请告诉我们您试图实现什么?我想使用TinyMCE删除textarea,但我遇到了问题。我已经添加了脚本和HTML以及他的照片。。请支持它。@MarcB:那我该用什么?我是个新手这里是“njajal”是“eleID”节点的直接孩子吗?它必须是直接的父子关系-如果两个节点之间有其他层,则不能使用removeChild。请告诉我们您试图实现什么?我想使用TinyMCE删除textarea,但我遇到了问题。我已经添加了脚本和HTML以及他的照片。。请支持它。@MarcB:那我该用什么?我是个新手here@Zaguza此编辑是否解决了您的问题?@Zaguza此编辑是否解决了您的问题?如果您可以显示使用完整的tinymce init配置,可能会有所帮助如果您可以显示使用完整的tinymce init配置,可能会有所帮助