带有 replace() 的 jQuery text() 不会替换文本

标签 jquery html text replace

我有以下 H2:

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

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

我已经尝试了以下但它不起作用:

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

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

最佳答案

改用这个:

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

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

来自 jQuery 的源代码:

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

关于带有 replace() 的 jQuery text() 不会替换文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17039262/

相关文章:

javascript - 图像 slider CSS 和 jQuery

r - 通过字符串解析合并数据框行

html - 如何缩放任意文本以始终适合视口(viewport)宽度?

jquery - 在网格中的 SlideToggle 上保持单元格 100% 高度

javascript - 如何显示动态添加的元素

jquery - IFrame 替代品

javascript - 根据下拉值更改表单字段

jquery - 表元素重叠

javascript - 在另一个 Controller 中使用来自一个 Controller 的数据

c# - 处理重复字符