2010-03-26 7 views
0

exemple html:sélecteur jQuery ne fonctionne pas dans IE

<tr> 
    <td class="hidden tblLnk">8163</td> 
</tr> 
<tr> 
    <td class="hidden tblLnk">8163</td> 
</tr> 
<tr> 
    <td class="hidden tblLnk">8164</td> 
</tr> 

cette méthode doit renvoyer un tableau unique de texte à partir des lignes avec une classe spécifique td. {8163, 8164} dans notre échantillon.

fonctionne en ffs et en chrome mais pas en ie8 ou safari. pouvez-vous repérer le problème?

function getUniqueIds() 
{ 
    var tblLnks = new Array(); 

    $('td.tblLnk').each(function() 
    { 
     tblLnks.push($(this).text().trim()); 
    }); 

    return tblLnks.unique(); 
} 
+0

Pouvez-vous également publier un extrait html? –

+0

avez-vous une erreur dans IE? –

+0

Et le code pour votre méthode unique(). – anddoutoi

Répondre

2

Je pense que ceci:

$(this).text().trim() 

devrait être ceci:

$.trim($(this).text()); 

Si votre intention est à nous jQuery de Fonction trim().

+1

yup - c'était tout. Merci. J'aime stackoverflow :) – CurlyFro

+0

En tant qu'addendum, String.trim() n'est disponible que dans JavaScript 1.8.1/ECMAScript 5, qui est implémenté par Firefox 3.5. Ceci explique les différences: https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String/Trim – Peter

1

1er: Il n'y a pas de méthode unique() native sur l'objet Array en JavaScript qui fonctionne dans tous les navigateurs modernes d'aujourd'hui. Donc, si c'est votre intention, veuillez poster ce code aussi.

2ème: Si vous faites référence à la méthode unique() de jQuery, il vaut mieux lire la description de cette méthode. Cette méthode ne peut pas être appelée sur l'objet Array. Il faut un objet Array d'éléments DOM comme paramenter, par exemple:

$.unique(myArrayOfDomElements); 
+0

J'ai ajouté une fonction unique. Array.prototype.unique = function() { var a = []; var l = this.length; pour (var i = 0; i CurlyFro