【问题标题】:jQuery Remove string from stringjQuery从字符串中删除字符串
【发布时间】:2011-02-23 18:05:52
【问题描述】:

我正在尝试从 jQuery 中的字符串中删除一个字符串。

这是字符串:

username1, username2 and username3 like this post.

我想从此列表中删除 username1,。 我尝试使用.split(', ') 将列表添加到数组中,但出现错误。我假设错误是因为不是每个单词后面都有逗号。

我总是想从列表中删除第一个项目。 username1 只是一个示例用户名。如果他们喜欢这篇文章,第一项将始终是当前登录用户的用户名。

我试过了:

  var updated_list = $('#post_like_list').html().replace('username1, ', '');
  $('#post_like_list').html(updated_list);

但这并没有更新列表。但是,当使用 .text() 而不是 .html() 时,它确实会更新列表,但我需要保留列表中的链接。

【问题讨论】:

  • 这个字符串在 JS 中是作为数组开始的还是什么?基于此时的问题,答案可能是: .replace('username1, ', '') 但我怀疑这就是你所追求的......
  • 请在您的问题中发布相关代码。如果您遇到错误,请提供您正在使用的导致错误的代码。
  • 你必须澄清:username1 总是一样的吗?您总是要删除 first 名称还是要删除特定名称?这不是 jQuery 问题,而是 JavaScript 问题。
  • 发布一些示例 html,我相信有人能够解决这个问题。目前我们只有等式的 1/2。

标签: javascript jquery string


【解决方案1】:

很确定您只想要普通的旧替换功能。像这样使用:

myString.replace('username1','');

我想如果您想删除尾随逗号,请改为:

myString.replace('username1,','');

编辑:

这是您网站的特定代码:

jQuery("#post_like_list-510").text().replace(...) 

【讨论】:

  • 我试过了,得到了错误(firebug) jQuery("#post_like_list-510").replace is not a function
  • @carl,那是因为 myString 变量只是一个字符串,而不是 jquery 对象。 jQuery("#post_like_list-510").text().replace(...) 也是如此
  • 你可能想要 jQuery('#post_like_list-510').val().replace(...)
  • @Carl markham:函数是字符串函数,不是jQuery函数。
  • @matei,如果我没记错的话,val() 不会在 div 或 span 等对象上返回预期结果。
【解决方案2】:

要添加 nathan gonzalez 的答案,请注意您需要在调用 replace 函数后分配被替换的对象,因为它不是一个 mutator 函数:

myString = myString.replace('username1','');

【讨论】:

    【解决方案3】:

    如果您只想删除“username1”,您可以使用简单的替换。

    name.replace("username1,", "")

    或者你可以像你提到的那样使用拆分。

    var name = "username1, username2 and username3 like this post.".split(",")[1];      
    $("h1").text(name);
    

    jsfiddle 示例

    【讨论】:

      【解决方案4】:

      我假设文本“username1”只是最终将成为实际用户名的占位符。假设,

      • 如果用户名不允许包含空格,则只需搜索第一个空格或逗号之前的所有内容(从而找到“u1 like this”和“u1, u2 and u3 like this” ")。
      • 如果它允许有一个空间,它可能会更容易将每个用户名包装在它自己的span标签服务器端,然后将其发送到客户端,然后正常工作使用 span 标签。

      【讨论】:

        【解决方案5】:

        很确定没有人按照您的确切条件回答您的问题,您希望它用于动态文本

        var newString = myString.substring( myString.indexOf( "," ) +1, myString.length );
        

        它需要一个从第一个逗号到结尾的子字符串

        【讨论】:

        • 效果不错!我刚刚将 'str' 替换为 'myString' 以获得有效的解决方案。
        【解决方案6】:

        这就是我使用 jQuery 删除反斜杠的编码方式。

        // Remove backslash from menu
        let selector = jQuery('.crm-submenu-manage-invoices a');
        
        // Get html
        let stringRemove = selector.html();
        
        // Remove backslash
        stringRemove = stringRemove.replace('\\', '');
        
        // Push back to selector
        selector.html(stringRemove);
        

        【讨论】:

          【解决方案7】:

          添加到 Shuvo 的答案...我需要从摘录中删除标题并使用以下内容:

          a.title 是我想要删除的文本。
          span.excerpt 是我希望将其从其中删除的位置

          var title=$('a.title').text();
          let selector = jQuery('span.excerpt');
          let stringRemove = selector.html();
          stringRemove = stringRemove.replace(title, '');
          selector.html(stringRemove);
          

          【讨论】:

          • 你为什么混合使用$jQuery
          猜你喜欢
          • 2013-04-07
          • 2011-02-26
          • 2015-11-14
          • 1970-01-01
          • 2019-09-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多