我有以下问题:
我想循环通过document
中的所有<td>
-元素,并用Sharepoint中的一些数据替换文本(通过使用SP.Services)。
updateData ();
function updateData () {
$(document).find('td').each (function() {
var contentTD = $(this).text().trim();
if (contentTD.indexOf("ABC\") >= 0) {
$(this).text(getUserDataFromSP (contentTD, 'Title'));
}
});
}
如果在<td>
中找到一个特定的文本,它应该传递给这个函数:
function getUserDataFromSP (userName, neededInformation) {
var managerName;
var user = userName;
$().SPServices({
operation: "GetUserProfileByName",
async: false,
AccountName: user,
completefunc: function (xData, Status) {
managerName = $(xData.responseXML).text();
var managerLength = managerName.length;
var indexofManager = managerName.indexOf(neededInformation);
managerName = managerName.substring(indexofManager + 11, managerLength);
var indexOffalse = managerName.indexOf("false");
managerName = managerName.substring(0, indexOffalse);
}
});
return managerName
}
问题是,如果我通过contentTD
,它不起作用:getUserDataFromSP (contentTD, 'Title')
但是,如果我这样做,它工作:getUserDataFromSP ("ABC\testUserName", 'Title')
似乎$(this).text().trim()
!= String?
有什么建议吗?
已找到解决方案:
我不得不考虑""是一个转义字符。
所以我只需要在传递的字符串中删除一个"":
contentTD = "ABCuserTestName"