我试图在#box01和#box02 div之后删除文本(哥斯达黎加,美国)。
<div id="box01">
Costa Rica
<div>100 percent</div>
<div>
<div id="box02">
United States
<div>99 ballons</div>
<div>
生产:
<div id="box01">
<div>100 percent</div>
<div>
<div id="box02">
<div>99 ballons</div>
<div>
我的问题是哥斯达黎加和美国不在<p>
。
提前致谢。
答案 0 :(得分:7)
试试这个(使用内容,过滤&amp; replaceWith):
$(function () {
$("#box01, #box02").contents().filter(function () {
return this.nodeType != 1;
}).replaceWith("");
});
示例@ jsFiddle:http://www.jsfiddle.net/CwTa8/1/
答案 1 :(得分:0)
我没有看到任何答案,所以即使它不漂亮,我也会给你我想出的东西。您可以使用$('div#box01').html()
获取div内容。您可以使用regex replace()之类的内容来更改该字符串,然后调用$('div#box01').replaceWith(newContentYouJustMade)
。
它不漂亮,但它会起作用。
答案 2 :(得分:0)
如果您想要的只是div中的div,那么这可以在不使用正则表达式的情况下工作,因为内容已经存在。你可以遍历一个id列表。
$(document).ready(function() {
$('#box01').replaceWith($('#box01').children());
$('#box02').replaceWith($('#box02').children());
});
答案 3 :(得分:0)
$('#box01, #box02').html( function(i,oldHTML){
return oldHTML.replace(/^[^<]+/,'');
});
答案 4 :(得分:0)
修改Cybernate的解决方案,使其包含ID
中包含“box”的所有div$(function () {
$("div[id*=box]").contents().filter(function () {
return this.nodeType != 1;
}).replaceWith("");
});