2016-07-14 19 views
1

Ich kann nicht scheinen, dass dies funktioniert und ich habe viele verschiedene Kombinationen ausprobiert. Alles, was ich tun möchte, ist, die Zeichen vier und fünf aus einem Text zu erhalten, der von einem .each() - Iterator zurückgegeben wird, bevor er in ein Array geschrieben wird.Wie man .slice() mit zurückgegebenem Text innerhalb der jQuery .each() Schleife benutzt?

var timeItems = []; 
    $("div[class*='field-name-field-time-']").each(function (i, e) { 
     $(this).text().slice(3,5); 
     timeItems.push($(e)); 
    }); 

Irgendwelche Ideen?

Danke!

+0

Ok, ist der Text in sich wie dieser Text und möchten Sie Element oder Text timeItems schieben, weil zur Zeit es dauern nur und speichern Sie es nirgendwo –

Antwort

0
var timeItems = []; 
$("div[class*='field-name-field-time-']").each(function (i, e) { 
    var text = $(e).text().slice(3,5); 
    timeItems.push(text); 
}); 
  1. Versuchen zweites Argument von each Parametern statt this verwenden.
  2. Weisen Sie Ihre Schicht einer Variablen zu und kehren Sie zu Push zurück. (http://www.w3schools.com/jsref/jsref_slice_string.asp)

Die Frage oft gestellt wird: „Wenn dies das Element ist, warum gibt es ein zweites DOM-Element Argument an den Rückruf übergeben?“ Ob absichtlich oder unbeabsichtigt, der Ausführungskontext kann sich ändern. Wenn Sie das Schlüsselwort konsistent verwenden, ist es leicht, uns selbst oder andere Entwickler, die den Code lesen, zu verwirren.

https://learn.jquery.com/using-jquery-core/iterating/#the-second-argument

+0

Danke, Stefan , Habe ich das versucht, aber es gibt immer noch keinen Text zurück ... – Alpinist1974

+0

können Sie mir einen Codepen/plunkr Ihres Problems zur Verfügung stellen? http://codepen.io/ –

+0

Testen Sie diese Geige: https://jsfiddle.net/r63c15tz/2/ –

1

dies auch

var timeItems = []; 
$("div[class*='field-name-field-time-']").each(function (i, e) { 

    var text = $(e).text().substring(3,5); //Dont forget to store them somewhere 
    timeItems.push($(e)); 
}); 

.slice() funktionieren sollte versuchen. Überprüfen Sie das JSFiddle unten und kommentieren Sie die Zeile, die Slice verwendet, um es auszuprobieren.

Auch, was sind Sie zurück zum Array? Ich nehme an, Sie meinen das Objekt, aber wenn Sie die Zeichen zurückgeben möchten, sollten Sie text auf timeItems statt $(e) drücken.

EDIT:https://jsfiddle.net/nv5tfszw/4/