Jquery 如何在html字符串中更改跨距中的文本?

Jquery 如何在html字符串中更改跨距中的文本?,jquery,string,text,Jquery,String,Text,我知道字符串在jquery中是不可变的对象,但这并不能帮助我解决这个问题 这是一个简化版本。我们有一排桌子。我需要将span id“rptreater_lblMiddleName_0”中的文本从“William”更改为“W” 最好的方法是什么 我们尝试了html、文本,但似乎无法更改字符串 function GetChangedMiddleName { var strTableRow = '<tr><td><span id="rptRepeater_lblFirs

我知道字符串在jquery中是不可变的对象,但这并不能帮助我解决这个问题

这是一个简化版本。我们有一排桌子。我需要将span id“rptreater_lblMiddleName_0”中的文本从“William”更改为“W”

最好的方法是什么

我们尝试了html、文本,但似乎无法更改字符串

function GetChangedMiddleName {

var strTableRow = '<tr><td><span id="rptRepeater_lblFirstName_0">John</span></td><td><span id="rptRepeater_lblMiddleName_0">William</span></td><td><span id="rptRepeater_lblLastName_0">Smith</span></td></tr>'

$(strTableRow).find('[id*=_lblMiddleName_]').text('W.');

return strTableRow;
}
函数GetChangedMiddleName{ var strTableRow='JohnWilliamSmith' $(strTableRow).find('[id*=[U lblMiddleName').text('W'); 返回strTableRow; } 结果应该是:

'<tr><td><span id="rptRepeater_lblFirstName_0">John</span></td><td><span id="rptRepeater_lblMiddleName_0">W.</span></td><td><span id="rptRepeater_lblLastName_0">Smith</span></td></tr>'
'JohnW.Smith'

您可以更改它,调用
end()
还原查找程序,然后获取outerHTML以存储回变量中

函数GetChangedMiddleName(){ var strTableRow='JohnWilliamSmith' strTableRow=$(strTableRow).find('[id*=[U lblMiddleName\]').text('W.).end().prop('outerHTML'); 返回strTableRow; } console.log( GetChangedMiddleName() );
在解析这样的片段时,使用
$.parseHTML()
可能比使用
$()
更好

完成后,返回解析产生的元素,或者如果必须转换回HTML,则可以在行上使用
outerHTML
来执行此操作,请参见注释:

函数GetChangedMiddleName(){ var strTableRow='JohnWilliamSmith' //解析HTML var result=$($.parseHTML(strTableRow)); //进行更新 result.find('[id*=[u lblMiddleName').text('W'); //如果您可以返回解析的结果,那么就这样做 //返回结果; //如果必须是字符串,请在行上使用outerHTML来获取字符串 返回结果[0]。outerHTML; } log(GetChangedMiddleName())
您需要将修改后的值存储回
strTableRow
我们尝试了strTableRow=$(strTableRow)。查找('[id*=\u lblMiddleName')。text('W');但是strTableRow现在会指向一个span object您真的需要字符串结果吗?您的函数定义中也有一个输入错误。缺少函数上的
()
。这比只使用字符串要好得多,因为我们正在更改大量控件内容,所以效果最好。谢谢!