je la question suivante:texte passe jQuery() - variable à une fonction
Je veux faire une boucle par tous les <td>
-elements dans le document
et remplacer du texte avec des données de Sharepoint (en utilisant 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'));
}
});
}
Si un texte spécifique dans <td>
se trouve, il doit être transmis à cette fonction:
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
}
Le problème est, si je passe contentTD
, cela ne fonctionne pas: getUserDataFromSP (contentTD, 'Title')
Mais, si Je fais ça, ça marche: getUserDataFromSP ("ABC\\testUserName", 'Title')
Il semble que $(this).text().trim()
! = String?
Des suggestions?
Définir un 'console.log (contentTD);' après avoir réglé sa valeur pour vérifier ce qu'il contient réellement. – ZiNNED
Je reçois 'ABC \\ testUserName'. Pour être sûr que je ne suis pas aveugle, j'ai utilisé la sortie d'un 'console.log' comme entrée pour la formule' getUserDataFromSP' et cela a fonctionné aussi :( –
Je ne sais pas comment faire, conseil général tho: N'utilisez pas le sélecteur de document, ceci recherche dans toutes les étiquettes, y compris la tête et ainsi de suite .. Mieux vaut utiliser un conteneur pour le tds (PAS bon html-pratique btw) et placez le sélecteur dans ce conteneur – sandrooco