我正试图弄清楚如何使用jQuery删除破折号和冒号。有办法吗?到目前为止,我已经尝试了.empty
和.remove
,但不幸的是,我无法让它工作。
<p class="meta">
<strong>Author Name</strong>
– <-- remove this
<time>June 7, 2013</time>
: <-- remove this
</p>
答案 0 :(得分:2)
你可以使用......
$('.meta').contents().filter(function() { return this.nodeType == 3 }).remove()
答案 1 :(得分:1)
试试这个:
$(function(){
var $children = $('.meta').children();
$('.meta').empty().append($children);
});
<强> Demo 强>
答案 2 :(得分:0)
试试这个,
$(function(){
$('p.meta').html($('p.meta').find('*'));
});
<强> Live Demo 强>
或试试,
$(function(){
$('p.meta').html(function(){ return $(this).find('*');});
});
<强> Alternative 强>
已更新,如果您的子元素附加了事件,请使用contents和filter之类的,
$(function(){
$("p.meta").contents().filter(function(){ return this.nodeType == 3; }).remove();
});
参考How can I change an element's text without changing its child elements?
答案 3 :(得分:0)
我建议重新创建你的$(“。meta”)DOM节点,所以你必须提取强和时间,清空你的$(“。 meta“)并插入以前存储的节点。
答案 4 :(得分:0)
您需要使用contents(),它将返回所有子项(包括文本节点)。然后使用remove()删除这些文本节点。
$(".meta").contents().filter(function() {
return this.nodeType == 3; // 3 for TEXT_NODE
}).remove()
答案 5 :(得分:-1)
以下是解决方案:http://jsfiddle.net/E6GYs/
$(document).ready(function(){
$(document).click(function(){
$('.meta time').remove();
})
})