2012-03-30 18 views

Antwort

0

Änderung var order = $("#boxes").sortable("toArray");

-var order = $("#boxes").sortable("toArray").join(',').replace(/[a-zA-Z]/gi, "");

Demo:http://jsfiddle.net/82r5v/13/

0
// Remove all non-digits from the string 
'box1'.replace(/\D/g, ''); // => '1' 
// Same, but try to make the string a number 
Number('box1'.replace(/\D/g, '')); // => 1 
// Shorthand for making an object a number (+o is the same as Number(o)) 
+'box1'.replace(/\D/g, ''); // => 1 
// parseInt(s) works if the number is at the beginning 
parseInt('1box'); // => 1 
// but not if it occurs later 
parseInt('box1'); // => NaN 
2

Ersetzen Sie einfach die Box Zeichenfolge aus ihm heraus bekommen müssen.

DEMO

for (var i = 0; i < order.length; i++) { 
    order[i] = order[i].replace('box', ''); 
} 
+1

+1 Beat mich dazu! – msanford

+0

Interessant ist die Verwendung dieser Methode gegenüber der Regex-Methode? –

+1

@benedict_w Für mich wäre es Lesbarkeit. Regex kann wie eine überarbeitete Lösung aussehen und scannen, was wirklich bedeutet, "diese Zeichenfolge durch nichts zu ersetzen". Wenn Sie Regex fließend sprechen, scannt es wahrscheinlich genauso einfach. Aber ich denke, viele von uns konsultieren immer noch unsere Ressourcen jedes Mal, wenn wir Regex verwenden. ;-) Ich spare es gerne für eine Situation, in der ein einfacher Ersatz nicht gut genug ist. –

2

Also statt box1, box2, box3, box4 wollen Sie 1,2,3,4

sehen Sie einen regulären Ausdruck wie this verwenden:

var order = $("#boxes").sortable("toArray") + ""; 
alert(order.replace(/[^0-9,]/g, '')); 

Ich musste auch einen leeren String anhängen zu order weil es nicht als String-Objekt erkannt wurde, obwohl der jQuer y Dokumentation sagt, es sollte sein, wenn Sie sortable("toArray") anrufen.

0

Vielleicht mit regulären Ausdrücken etwas wie folgt aus:

`alert(order.join(',').match(/\d/g));` 

das Array als Zahlen zurückzukehren.

(\d Matches alle Ziffern, bedeutet g eine globale Wildcard Spiel)

0

Eine Möglichkeit, es zu tun, indem sie mit regulären Ausdrücken - http://jsfiddle.net/holodoc/82r5v/14/

$(document).ready(function() { 

    var arrValuesForOrder = ["2", "1", "3", "4"]; 
    var ul = $("#boxes"), 
     items = $("#boxes li.con"); 

    for (var i = arrValuesForOrder[arrValuesForOrder.length - 1]; i >= 0; i--) { 
     // arrValuesForOrder[i] element to move 
     // i = index to move element at 
     ul.prepend(items.get(arrValuesForOrder[i] - 1)); 
    } 

$("#boxes").sortable({ 
    handle : '.drag', 
    update: function() { 
     var order = $("#boxes").sortable("toArray"); 
     var sorted = []; 
     $.each(order, function(index, value){ 
      sorted.push(value.match(/box(\d+)/)[1]);     
     }) 
     alert(sorted); 
    } 
}); 

}); 
Verwandte Themen