Jquery 如何在html字符串中更改跨距中的文本?
我知道字符串在jquery中是不可变的对象,但这并不能帮助我解决这个问题 这是一个简化版本。我们有一排桌子。我需要将span id“rptreater_lblMiddleName_0”中的文本从“William”更改为“W” 最好的方法是什么 我们尝试了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
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您真的需要字符串结果吗?您的函数定义中也有一个输入错误。缺少函数上的()
。这比只使用字符串要好得多,因为我们正在更改大量控件内容,所以效果最好。谢谢!