删除div后的特定文本

时间:2011-01-27 05:45:17

标签: jquery

我试图在#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>

提前致谢。

5 个答案:

答案 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)

修改Cyber​​nate的解决方案,使其包含ID

中包含“box”的所有div
$(function () {
    $("div[id*=box]").contents().filter(function () {
        return this.nodeType != 1;
    }).replaceWith("");
});