Je construis un tableau, que je vais utiliser plus tard pour comparer certaines valeurs. -je utiliser ce code pour construire « myArray », que je vais utiliser plus tard:Interprétation jQuery Array
var optionTexts = [];
$('#stripeMeSubSubCat tr').each(function(){
if ($(this).find('input:checkbox.subsubcat_chkclass:not(:checked)').length == 0)
{
subsubrow_cat_id_no = parseInt($(this).closest("tr").attr("id"));
optionTexts.push(subsubrow_cat_id_no);
};
});
var myArray = optionTexts.join(', ');
alert("myArray = "+myArray);
J'utilise ici monTableau pour faire une comparaison:
$('#stripeMeSubSubCat tr').each(function(){
myindex = $.trim($(this).closest("tr").attr("id"));
var arr = [myArray];
//var arr = [0, 439, 52, 53];
myindex = parseInt(myindex);
alert(myindex);
alert(arr);
if ((jQuery.inArray(myindex, arr)) == -1) {
var equal = "FALSE";
} else {
var equal = "TRUE";
$("#stripeMeSubSubCat tr[id='" + myindex + "'] input").attr('checked', true);
};
alert(equal);
});
Comme le code ci-dessus, il revient toujours FAUX. Toutefois, si vous n'utilisez pas le premier bloc de code et que vous activez simplement le paramètre var arr (où j'ai défini le tableau sur des données fixes), il renvoie TRUE à l'endroit voulu.
Des idées?
de cette façon, il fonctionne aussi si je garde myindex = parseInt (myindex); Le plus étrange arrive maintenant cependant. Lorsque je supprime les alertes du code, cela ne change pas l'attribut de la case à cocher. Comment c'est? – andreas777
@ andreas7 - Je n'ai aucune idée de la façon dont le code que vous avez ci-dessus fonctionne parce que 'myArray' n'en est pas un et donc' arr' est un tableau contenant uniquement l'élément unique - la valeur de 'myarray'. Même si 'myarray' était un tableau,' arr' serait un tableau contenant un seul élément, lui-même un tableau. Je peux voir où vous devez convertir 'myIndex' en une valeur numérique sinon vous comparez les chaînes aux nombres, mais je pense que vous obtenez des résultats erronés et vous devriez vraiment vérifier' optionsText' pour la valeur. – tvanfosson
J'ai fait le changement que vous avez proposé et n'utilisez donc pas myArray n'importe où. Cela fonctionne bien tant que les alertes sont dans le code. Si je les supprime, cela ne fonctionne pas. Y a-t-il un problème de synchronisation, comment puis-je le gérer? – andreas777