【问题标题】:jQuery Removing specific text from an elementjQuery从元素中删除特定文本
【发布时间】:2016-11-18 01:32:11
【问题描述】:

我想从我网站的元素中删除文本“作者:”。我希望文本的其余部分保留在那里。如何使用 jQuery 实现这一点?谢谢。

HTML

<div id="text">By: Anonymous From Minnesota</div>

我希望它只是:

<div id="text">Anonymous From Minnesota</div>

【问题讨论】:

  • 从什么元素的什么属性中删除文本?就像...文本输入字段的当前值?还是只是 div 或 p 元素中的任意文本?
  • @themerlinproject 添加了 HTML
  • @codercake 只是divp 中的文本

标签: jquery


【解决方案1】:

如果你想找到每个带有“By:”的元素并删除它,你可以试试这个:

$(':contains("By:")').each(function(){
    $(this).html($(this).html().split("By:").join(""));
});

这会删除任何元素中出现的“By:”。如果您想定位特定类型的元素,只需更改 $(':contains("By:")') 以包含适合您的任何选择器。

【讨论】:

  • 这似乎是我要找的东西,但是,由于某种原因,随机添加了一个逗号:jsfiddle.net/xSphc
  • 哈!我忘记在 join() 中添加分隔符参数。我已经用 join("") 更新了答案。基本上它所做的是使用“By:”作为分隔符将字符串拆分为一个数组,然后将数组元素重新连接成一个字符串,不使用任何分隔符。希望有帮助:)
  • 如果您有兴趣了解基本 .split().join() 与 .replace(//g, "") 的性能,您可能会觉得这很有趣:jsperf.com/split-join-vs-regex-replace跨度>
  • 不幸的是,当我将代码修改为:$('table#ReviewBox tbody tr td table tbody tr td i:contains("By:")').each(function(){ $(this).html($(this).html().split("By:").join("")); }); 它只删除了“By:”的第一个实例,有解决办法吗?
  • 如果你对源 HTML 有很大的帮助...我会假设选择器只匹配一个对象,或者在第一次替换后抛出错误。跨度>
【解决方案2】:

使用正则表达式的更具全局性的解决方案。即使您的字符串结构会发生变化,这也会替换 By:

var str = $('div').text().replace(/By:/g, '');
$('div').text(str);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div id="text">By: Anonymous From Minnesota</div>

【讨论】:

    【解决方案3】:

    var str = $("#text").text();
    $("#text").text(str.substring(3));
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
    <div id="text">By: Anonymous From Minnesota</div>

    使用 javascript 的 substring 并为您的 div 提供一个 ID 以便轻松访问它:

    html:

    <div id="text">By: Anonymous From Minnesota</div>
    

    jquery:

    var str = $("#text").text();
    $("#text").text(str.substring(3));
    

    你也可以一行完成:

    $("#text").text($("#text").text().substring(3));
    

    【讨论】:

      【解决方案4】:

      给 div 一个唯一的 id, t:

      $('#div_id').html($('#div_id').html().substring(3));
      

      小提琴:http://jsfiddle.net/ChUB4/

      【讨论】:

        猜你喜欢
        • 2020-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-25
        • 2015-03-28
        • 1970-01-01
        • 2018-08-13
        相关资源
        最近更新 更多