如何解决jQuery —删除未包装的文本但保留元素?
| 所以这是代码:<parent><child>i want to keep the child</child>Some text I want to remove</parent>
我想将其更改为:
<parent><child>i want to keep the child</child></parent>
我看到很多人问如何删除子元素并保留展开的文本,但反之则不行。您如何定位未命名的内容?
解决方法
尝试这个:
var child = $(\'parent\').children(\'child\');
$(\'parent\').html(child);
小提琴:http://jsfiddle.net/maniator/t2CDk/
如果执行此操作,将从元素中丢失任何“ 3”和数据。
,您可以按照javascript的方式进行操作,并测试每个节点的nodeType为3,然后对其执行removeChild。这将非常干净快捷(最小的jQuery),并且不会弄乱任何事件监听器。
var parent = $(\'parent\')[0]; // Get reference to DOM
for( var i = 0; i < parent.childNodes.length; i++ ) {
var current_child = parent.childNodes[i];
if( current_child.nodeType == 3 )
parent.removeChild( current_child );
}
,我修改了Neals答案,因此适用于多个元素:
$( elements ).each(function() {
var child = $(this).children();
$(this).html(child);
});
,非常简单,只需使用以下代码:
jQuery(function($){
// Replace \'td\' with your html tag
$(\"td\").html(function() {
// Replace \'ok\' with string you want to change,you can delete \'hello everyone\' to remove the text
return $(this).html().replace(\"ok\",\"hello everyone\");
});
});
这是完整的示例:https://blog.hfarazm.com/remove-unwrapped-text-jquery/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。