2016-10-19 2 views
-1

Splitting Text gesammelt mit .text()

$(document).ready(function(){ 
 
      var dates = "July 5, 2016July 12, 2016"; 
 
      var splitted = dates.split(/\B(?=[A-Z])/); 
 
      
 
      var k = []; 
 
      for (i of splitted) { 
 
       k.push(i.match(/\d+(?=,)/)[0]); 
 
       // alert(typeof k); 
 
      } 
 
      if (k) { 
 

 
       $.each(k, function(key, value) { 
 
        var date = value; 
 
         $(".fc-list-heading-main").append(date); 
 
       }); 
 
      } 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="fc-list-heading-main"></div> 
 

 
<div class="fc-list-heading-main"></div>

Ich bin für einen website.The Kalender auf diesen Veranstaltungskalender arbeiten wird vermasselt, wenn es mehr 1 Ereignis für einen Monat. Ich arbeite für eine Korrektur und blieb stecken auf diesen einen:

Mein Code:

<script> 
    $(document).ready(function(){ 
     $(".fc-prev-button").click(function(){ 
      $('.fc-list-heading-main').each(function (index, value){ 
       var dates = $(".fc-list-heading-main").text(); 
       console.log(dates); 
      }); 
     }); 
    }); 
</script> 

Das Ergebnis:

enter image description here

Wie kann ich Juli trennen 12, 2016 von Juli 5, 2016? Ich muss sie als separates Datum weitergeben. Hoffe jemand könnte mir dabei helfen. Danke im Voraus!

+0

Sie diesen Terminen eine separate HTML-Elemente in diesem Kalender haben? Vielleicht gibt es mehr Elemente in '.fc-list-heading-main' –

+0

.fc-list-heading-main ist eigentlich die span-Klasse, in der sich der Text befindet. –

Antwort

1

$(document).ready(function(){ 
 
      var dates = "July 5, 2016July 12, 2016"; 
 
      var splitted = dates.split(/\B(?=[A-Z])/); 
 
      
 
      var k = []; 
 
      for (i of splitted) { 
 
       k.push(i.match(/\d+(?=,)/)[0]); 
 
      } 
 
      if (k) { 
 
       $.each(k, function(key, value) { 
 
        $(".fc-list-heading-main").eq(key).append(value); 
 
       }); 
 
      } 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="fc-list-heading-main"></div> 
 

 
<div class="fc-list-heading-main"></div>

+0

Wow Mann. Vielen Dank. Das hat mich gerettet. Die ganze Zeit über fehlte mir nur die Äquivalenz (Schlüssel). Möchten Sie das erklären? –

+0

'$ (". Fc-list-heading-main ")' geben Sie zwei Elemente zurück, so dass Sie '.eq (0)' verwenden müssen, um die erste zu erhalten und den Text zu ändern. Bevor Sie beide Elemente gleichzeitig bearbeitet haben. –

+0

Danke Mann. Ich war davor hoffnungslos. Ja, werde ich. Danke noch einmal! –

0

Ich bin sicher, FullCalendar hat eine Methode, um diese Ereignisse auf eine bessere Weise zu bekommen.

https://fullcalendar.io/docs/event_data/clientEvents/

Es gibt einige andere Methoden, aber etw wie dies funktionieren sollte:

var dates = $('#fullcalendar').fullCalendar('clientEvents').map(
    function(calendarEvent){ return calendarEvent.start} 
) 
+0

Hallo! Danke für den Vorschlag. Ich bin meinem Ziel schon nahe, bin aber in diesem Teil wieder stecken geblieben. Hier ist mein Code: –

+0

http://pastebin.com/pwpJqmA0 –

+0

Mein Problem ist, dass es nur das letzte Element aus dem Objekt zurückgibt und ich kann nicht herausfinden, warum es passiert. Hast du eine Idee? –