2013-05-24 2 views
0

J'essaie de modifier la colonne d'une liste externe dans sharepoint.jquery parfois parfois pas de travail

alert(1)alert(2) fonctionne. Mais alert(3) ne fonctionne pas toujours. Quel est le problème? Voici mon code:

<script type="text/javascript"> 

    alert(1); 
    $().ready(function() { 
      alert(2);  
      $('table[summary="CalisanBilgi"] ').each(function() { 
       alert(3);   
       $('td:last-child', $(this)).html('<img src="http://ahapp/img/image.aspx?s="'+$('td:last-child', $(this)).html() +'" />') 
      }); 
    }); 

    </script> 

ÉDITÉ:

Il est le code de la liste où je peux voir le html avec Web Dev Tools à partir du navigateur. J'essaie de modifier la dernière colonne nommée ID pour afficher l'image de la personne.

<table summary="CalisanBilgi" ....> 
<tbody> 
<tr class=" ms-itmHoverEnabled ms-itmhover"> 
<td class="ms-cellStyleNonEditable ms-vb-itmcbx ms-vb-imgFirstCell"> 
ID 
</td> 
<td class="ms-cellstyle ms-vb2"> 
NAME 
</td> 
<td class="ms-vb-lastCell ms-cellstyle ms-vb2 ms-vb-lastCell"> 
ID 
</td> 
</tr> 
</tbody> 
</table> 

RÉPONSE:

$(document).ready(function() { 
     $('table[summary="CalisanBilgi"] tr').find('.ms-vb-lastCell').each(function(){ 

      $(this).html('<img src="http://ahapp/img/image.aspx?s=' + $(this).html() + '"/>') ;  
     }); 

}); 
+1

ne vous obtenez un message d'erreur? –

+0

Non, je ne l'ai pas fait. Est-il possible de mettre un journal d'erreurs pour jquery? –

+0

il y a une console js dans la plupart des navigateurs modernes. Mais peut-être que vous n'obtiendrez aucune erreur, parce que d'où je vois votre code semble ok. Nous aurons besoin de plus d'explications (que voulez-vous dire par "ne fonctionne pas") et plus de code pour vous aider –

Répondre

3

Je pense que cela devrait faire ce que vous voulez:

$(document).ready(function() 
    { 
     $('table[summary="CalisanBilgi"] tr td:last-child').each(function() 
     { 
      $(this).html('<img src="http://ahapp/img/image.aspx?s=' + $(this).html() + '"/>') ;  
     }); 
    }); 

cfr this fiddle

Quelques mots d'explication:

1) sélecteur table[summary="CalisanBilgi"] tr td:last-child sélectionne un tableau de la durée td de chaque tr dans le tableau avec sommaire 'table[summary="CalisanBilgi"] tr td:last-child'

2) Dans la fonction each(), chacun de ces td est identifié par $(this)

3) Je viens de prendre le contenu HTML de ce td, contenant l'identifiant de l'utilisateur, et l'utiliser pour générer la balise img qui a finalement remplace le contenu original.

Je sugest bien que vous générez ce contenu par le code de sharepoint (serveur), ce qui serait beaucoup plus propre ...

+0

J'ai changé votre code et cela a fonctionné. Je vous remercie. –

0

Je pense que vous avez oublié le point-virgule

ici

$('td:last-child', $(this)).html('<img src="http://ahapp/img/image.aspx?s="'+$('td:last-child', $(this)).html() +'" />');

+0

JavaScript a une insertion automatique de point-virgule. Alors que les points-virgules sont considérés par beaucoup de «meilleures pratiques», ce n'est pas un problème avec le code OP. –

+0

ok ok merci. :) –

Questions connexes