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

我有以下H2:

Password reset instructions have been sent to *|RESETPASSWORDEMAIL|*

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

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

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

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

改为使用它:

 $('#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 ); 

我建议采用不同的方法:

 

Password reset instructions have been sent to

和相应的js:

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

像这样使用。

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

参见演示演示

试试这个

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

你甚至可以简单地做到这一点

  

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