2016-10-19 1 views
0

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?

+0

Définir un 'console.log (contentTD);' après avoir réglé sa valeur pour vérifier ce qu'il contient réellement. – ZiNNED

+0

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 :( –

+0

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

Répondre

0

solution a été trouvée:

je devais considérer que "\" est un caractère d'échappement.

Je ne devez supprimer un « \ » dans la chaîne passée:

contentTD = "ABC\userTestName"