带有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();