IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[IE]getElement sur ie


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Par défaut [IE]getElement sur ie
    Bonsoir a tous,

    Voici mon probleme sur lequel je planche depuis 2h..!!!

    je génère un tr avec javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var tr = "<tr class='vossers-filterrow'>" + tdset + "</tr>";
    que j'insere apres un autre tr.
    Sous opera, firefox, j'arrive a le récupérer ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function MaskFilter()
    {
        var list_tr = document.getElementsByTagName('tr');
        for(var i=0; i<list_tr.length; i++)
        {
          if(list_tr[i].className == "vossers-filterrow")
               list_tr[i].style.display="none";
        }
    }
    seulement sur IE ca ne fonctionne pas..j'ai essayé de mettre un id lors de la génération, ie me dit que le getElementById est null..
    dans les 2 cas, je n'arrive meme pas a voir l'élément avec iedevtoolbar..
    help plzzz

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par HeB91 Voir le message
    je génère un tr avec javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var tr = "<tr class='vossers-filterrow'>" + tdset + "</tr>";
    que j'insere apres un autre tr.
    On peut voir les autres étapes ?
    => le contenu de tdset et les instruction d' "insertion"

    En fait la fonction complète serait souhaitable

    A+

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Par défaut
    voila le script utilisé que j'éssai de décortiquer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    // SharePoint InstantListFilter - developed by Jaap Vossers
     
    $(document).ready(function()
    {	
    	jQuery.extend(jQuery.expr[':'], {
    	  containsIgnoreCase: "(a.textContent||a.innerText||jQuery(a).text()||'').toLowerCase().indexOf((m[3]||'').toLowerCase())>=0"
    	});
     
     
    	$("table.ms-listviewtable tr.ms-viewheadertr").each(function()
    	{
    		if($("td.ms-vh-group", this).size() > 0)
    		{
    			return;	
    		}
     
    		var tdset = "";
     
    		var colIndex = 0;
     
    		$(this).children("th,td").each(function()
    		{
    			if($(this).hasClass("ms-vh-icon"))
    			{
    				// attachment
    				tdset += "<td></td>";
    			}
    			else
    			{
    				// filterable
    				tdset += "<td><input type='text' class='vossers-filterfield' filtercolindex='" + colIndex + "' /></td>";				
    			}
     
    			colIndex++;
    		});
    		var tr = "<tr class='vossers-filterrow'>" + tdset + "</tr>";
    		$(tr).insertAfter(this);
    //        var list_tr = document.getElementsByTagName('tr');
    //        for(var i=0; i<list_tr.length; i++)
    //        {
    //          if(list_tr[i].className == "ms-viewheadertr")
    //               list_tr[i].parentElement.insertBefore(tr,list_tr[i].nextSibling);
    //        }
     
    	});	
     
     
    	$("input.vossers-filterfield")
    		.css("border", "1px solid #7f9db9")
    		.css("width", "100%")
    		.css("margin", "2px")
    		.css("padding", "2px")
    		.keyup(function()
    		{			
    			var inputClosure = this;
     
    			if(window.VossersFilterTimeoutHandle)
    			{
    				clearTimeout(window.VossersFilterTimeoutHandle);
    			}
     
    			window.VossersFilterTimeoutHandle = setTimeout(function()
    			{
    				var filterValues = new Array();
     
    				$("input.vossers-filterfield", $(inputClosure).parents("tr:first")).each(function()
    				{				
    					if($(this).val() != "")				
    					{
    						filterValues[$(this).attr("filtercolindex")] = $(this).val();
    					}
    				});		
     
     
    				$(inputClosure).parents("tr.vossers-filterrow").nextAll("tr").each(function()
    				{
    					var mismatch = false;
     
    					$(this).children("td").each(function(colIndex)
    					{
    						if(mismatch) return;
     
    						if(filterValues[colIndex])
    						{
    							var val = filterValues[colIndex];
     
    							// replace double quote character with 2 instances of itself
    							val = val.replace(/"/g, String.fromCharCode(34) + String.fromCharCode(34));							
     
    							if($(this).is(":not(:containsIgnoreCase('" + val + "'))"))
    							{
    								mismatch = true;
    							}						
    						}
    					});
     
    					if(mismatch)
    					{
    						$(this).hide();
    					}
    					else
    					{
    						$(this).show();
    					}		
    				});				
     
    			}, 250);
    		});
    });

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Personnellement je m'entête à passer par le DOM pour crée des éléments sur une page ...
    ça m'évite juste ce genre de déconvenues
    http://www.developpez.net/forums/d47...us-rapidement/
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre éclairé
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Par défaut
    Effectivement, j'ai déjà essayer d'une maniere similaire avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var list_tr = document.getElementsByTagName('tr');
            for(var i=0; i<list_tr.length; i++)
            {
              if(list_tr[i].className == "ms-viewheadertr")
                   list_tr[i].parentElement.insertBefore(tr,list_tr[i].nextSibling);
            }
    Mais je vais rééssayer en suivant ta méthode, c-a-d en créant les éléments tr et td étant donné que le tableau éxiste déjà. Tu pense que cela résoudrais mon probleme?

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    tu précises le tbody ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Débat sur l'I.A (Intelligence Artificielle)
    Par Anonymous dans le forum Intelligence artificielle
    Réponses: 457
    Dernier message: 05/07/2016, 01h11
  2. Documentation gratuite sur l'API Windows, COM, DCOM, OLE, etc.
    Par Community Management dans le forum Windows
    Réponses: 1
    Dernier message: 16/11/2006, 15h28
  3. [Kylix] Kylix embarqué sur PDA ?
    Par Anonymous dans le forum NoSQL
    Réponses: 10
    Dernier message: 29/11/2002, 13h59
  4. Réponses: 4
    Dernier message: 27/03/2002, 11h03
  5. F.A.Q, Doc, cours, tutoriels sur JBuilder
    Par Ricky81 dans le forum JBuilder
    Réponses: 0
    Dernier message: 14/03/2002, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo