【问题标题】:jQuery text() with replace() doesn't replace the text带有 replace() 的 jQuery text() 不会替换文本
【发布时间】:2013-06-07 00:24:04
【问题描述】:

我有以下H2:

<h2 id="resetPWSuccess">Password reset instructions have been sent to *|RESETPASSWORDEMAIL|*</h2>

我想用我在 jQuery 变量 emailAddress 中拥有的当前电子邮件地址替换 *|RESETPASSWORDEMAIL|*

我尝试了以下方法,但它不起作用:

$('h2#resetPWSuccess').text().replace('*|RESETPASSWORDEMAIL|*', emailAddress).show();

有没有办法更新 h2 文本 - 如果可能,我更喜欢一行。

【问题讨论】:

    标签: jquery html text replace


    【解决方案1】:

    改用这个:

    $('#resetPWSuccess').text(
       $('#resetPWSuccess').text().replace('*|RESETPASSWORDEMAIL|*', emailAddress)
    ).show();
    

    请注意,我还从您的选择器中删除了 h2:它比仅使用 id 没用而且速度较慢。当你让 jQuery 搜索 #resetPWSuccess 时,它会使用非常快的原生 getElementById 函数。

    来自 jQuery 的源代码:

    // Shortcuts
    if ( (match = rquickExpr.exec( selector )) ) {
        // Speed-up: Sizzle("#ID")
        if ( (m = match[1]) ) {
            if ( nodeType === 9 ) {
                elem = context.getElementById( m );
    

    【讨论】:

    • 效果很好,会接受 - 只是时间限制待定。我可以问一下放弃h2(为了我的教育)吗?这怎么更快?它会以某种方式改变 DOM 的 jquery 搜索吗?
    • 欣赏比我能说的更多 - 永远不会知道......现在有很多更新要做:)......谢谢
    • 您与基于类的选择器具有相同的属性。如果'.theclass' 符合您的需要,请不要在选择器中添加任何内容。
    【解决方案2】:

    我会建议一种不同的方法:

    <h2 id="resetPWSuccess">Password reset instructions have been sent to <span id="resetPWemail"></span></h2>
    

    以及对应的js:

    $('#resetPWemail').text(emailAddress);
    $('#resetPWSuccess').show();
    

    【讨论】:

      【解决方案3】:

      这样使用。

      $('#resetPWSuccess').text(
        $('#resetPWSuccess').text().replace('*|RESETPASSWORDEMAIL|*', 'neeraj@gmail.com')
      )
      

      查看演示Demo

      【讨论】:

        【解决方案4】:

        试试这个

        $("#resetPWSuccess").text(
          $('#resetPWSuccess').text().
             replace('*|RESETPASSWORDEMAIL|*', $("#EmailID").val()))
        

        【讨论】:

          【解决方案5】:

          你甚至可以简单地这样做

           <h2 id='resetPWSuccess'></h2>
          
           $('h2#resetPWSuccess').text('Password reset instructions have been sent to '+emailaddress).show();
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-05-09
            • 2012-09-25
            • 1970-01-01
            • 2023-02-10
            • 2022-08-12
            • 2014-05-10
            • 1970-01-01
            • 2011-11-08
            相关资源
            最近更新 更多