freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

προβλημα με split και join


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » JavaScript και Frameworks
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [3 Μηνύματα]       Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
sibas
Honorary Member

Μέλος από: 21 Φεβ 2003
Templates: 1
Μηνύματα: 256+

Περιοχή: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
View users profile Visit posters website
ΜήνυμαΣτις: 19 Απρ 2017 11:11    Θέμα: προβλημα με split και join Απάντηση με παράθεση  Mark this post and the followings unread

Έχω το εξής θέμα

υπάρχουν 2 ul
κώδικας:
<ul id="u1">
<li data-id="1"></li>
<li data-id="5"></li>
</ul>

<ul id="u2"></ul>



από μια php function πέρνω κάποιες τιμές και τις περνάω σε javascript

κώδικας:
var us = '1,2,3,4,5';


με την findulli βρίσκω αν προ υπάρχουν συγκεκριμένα li από την ul#u1 με το data-id και τα περνάω στο δευτερο ul#u2

κώδικας:
var us = '1,2,3,4,5';
function findulli(us){
var nu = us.split(','),
newul = ('ul2'),
di = false,
new_arr = new Array();

   for(var i = 0; i < nu.length; ++i){
      
      di = $('ul').find('li[data-id='+nu[i]+']');
         if(di){
         di.clone().prependTo(newul);
         // πως να βρώ αυτά που λείπουν?
         new_arr.push(nu[i]);
         
         }
   }
   console.log(nu+ ' new_arr-> '+new_arr);
}
findulli(us);


όλα καλά και όλα ανθηρά μέχρι εδώ!

Το πρόβλημα είναι πως (σε αυτή την περίπτωση) μου λείπουν το 2,3,4
πως να βρώ αυτές τις τιμές που λείπουν και να τις περάσω σαν join ή array έξω από το loop?

κάποια ιδέα?

_________________
simply4all.net A social directory - yourlink.mobi A mobile directory for websites -
W.I.D submit a website by country and area
sibas
Honorary Member

Μέλος από: 21 Φεβ 2003
Templates: 1
Μηνύματα: 256+

Περιοχή: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
View users profile Visit posters website
ΜήνυμαΣτις: 20 Απρ 2017 07:52    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

βρήκα λύση

κώδικας:
var us = '1,2,3,4,5';
function findulli(us){
var nu = us.split(','),
newul = ('ul2'),
di = false;

   for(var i = 0; i < nu.length; ++i){
      di = $('ul').find('li[data-id='+nu[i]+']');
      if(di){
         di.clone().prependTo(newul);
         var numid = di.attr('data-id');
         if(nu[i] == numid) {
            nu.splice(i, 1);
         }
      }
   }
   console.log('new nu-> '+nu);
}
findulli(us);


happy me Another pint of beer

_________________
simply4all.net A social directory - yourlink.mobi A mobile directory for websites -
W.I.D submit a website by country and area
sibas
Honorary Member

Μέλος από: 21 Φεβ 2003
Templates: 1
Μηνύματα: 256+

Περιοχή: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
View users profile Visit posters website
ΜήνυμαΣτις: 20 Απρ 2017 13:07    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

ποιος μπορει να βοηθήσει σε αυτό γιατι δεν το καταλαβαίνω ToolTimes at work

κώδικας:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
</head>
<body>
<p>copy li to another ul</p>

<ul id="u1">
<li data-id="2">data-id="2"</li>
</ul>

<ul id="u2"></ul>

<script src="//ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
const CHECK_ID = '5';
var us = '1,2,3,4,5';
//var us = '2,5';
function findulli(us){
var nu = us.split(','),
newul = ('ul#u2');

   for(var i = 0; i < nu.length; ++i){
      console.log('nu.length= '+nu.length+' - '+nu[i]);
      if(nu[i] === CHECK_ID){
         //console.log('chekid '+CHECK_ID+'-> nu[i]= '+nu[i]+ ' i= '+i);
         console.log('spliced first= '+nu[i]+' i='+i);
         nu.splice(i, 1);
         
      }else{
         di = $('ul#u1').find('li[data-id='+nu[i]+']');
         //di = $('ul#u1').find('li[data-id="6"]');
         numid = di.attr('data-id');
         if(typeof numid !== 'undefined'){
            di.clone().prependTo(newul);
            if(nu[i] === numid) {
               nu.splice(i, 1);
               console.log('spliced= '+nu[i]+' i='+i+ ' numid= '+numid);
            }
         }else{
             console.log('We not find DI');
         }
      }
   }
   console.log('new nu-> '+nu);
}
findulli(us);
</script>

</body>
</html>



για να δείτε το πρόβλημα comment/uncomment τα παρακάτω
παράθεση:
var us = '1,2,3,4,5';
//var us = '2,5';


στο πρώτο λειτουργεί μια χαρά και αυτό είναι το ζητούμενο

logs
παράθεση:
nu.length= 5 - 1
We not find DI
nu.length= 5 - 2
spliced= 3 i=1 numid= 2
nu.length= 4 - 4
We not find DI
nu.length= 4 - 5
spliced first= 5 i=3 // *
new nu-> 1,3,4 // το ζητούμενο είναι αυτό


στο δεύτερο

παράθεση:
//var us = '1,2,3,4,5';
var us = '2,5';


logs
παράθεση:
nu.length= 2 - 2
spliced= 5 i=0 numid= 2
new nu-> 5 // ΕΔΩ ΤΟ nu ΕΠΡΕΠΕ ΝΑ ΕΙΝΑΙ ΚΕΝΟ


δηλαδή το προβλημα είναι ότι το spliced first δεν εκτελέστηκε
i.e if(nu[i] === CHECK_ID)

τι κάνω λάθος???

_________________
simply4all.net A social directory - yourlink.mobi A mobile directory for websites -
W.I.D submit a website by country and area
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [3 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » JavaScript και Frameworks
Τώρα είναι 24 Απρ 2017 05:21 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos