2017-11-13 1 views
0

Man bedenke, dass ich die folgende htmlFetch Wert Array - JQuery

<input type="text" id="other_floor_plans" name="other_floor_plans[]" value="["Pool","Office","Sprinkler","Boiler"]"> 

Um die Werte zu holen i

verwenden
a = $('#other_floor_plans').val() 

Es gibt folgende

"["Pool","Office","Sprinkler","Boiler"]" 

Wenn ich eine haben verwenden [0] gibt es "[" als Ausgabe zurück. Ich muss "Pool" als ersten Wert erhalten.

Wie wird das erreicht?

Antwort

3

Ihr Wert ist eine Art von string, die eine korrekte JSON Syntax hat. Parsen Sie einfach mit JSON.parse in das Array und verwenden Sie Ihre Syntax.

const value = '["Pool","Office","Sprinkler","Boiler"]'; 
 
const array = JSON.parse(value); 
 

 
console.log(array[0]);

0

Ich glaube, Sie brauchen in Markup speziell wenig Code zu ändern.

geändert Ihre Eingabe Markup in diesem von jQuery <input type="text" id="other_floor_plans" name="other_floor_plans[]" value='["Pool","Office","Sprinkler","Boiler"]'>

dann Wert erhalten

var a = $('#other_floor_plans').val(), 
a = JSON.parse(a); 
console.log(a[0]); 

Sie brauchen JSON.parse zu verwenden, da Sie json Format Wert erhalten und analysiert werden müssen.

für meine Empfehlung Komma Sie nur einzelnen Wert wie

<input type="text" id="other_floor_plans" name="other_floor_plans[]" value="Pool, Office, Sprinkler, Boiler"> 

dann als ersten Wert jQuery

var a = $('#other_floor_plans').val().split(","); 
console.log(a[0]); 

Dieser ist viel besser lesbar und leicht zu bekommen, denke ich.

0

Sie können eval Funktion verwenden, um Zeichenfolge in Array zu konvertieren und den Wert zu erhalten.

0

Dort machen Sie eine falsche Praxis, wenn Sie Wert in Eingabefeld initialisieren, müssen Sie einen Wert in verschiedenen Anführungszeichen enthalten. es Sie nehmen „für Wert assign und“ auch für Array-Zeichenfolge, die Ihren Text auf dem zweiten gestutzt "das ist, warum nur diese Rückkehr [im Wert Versuchen wie diese zu verwenden:.

HTML

<input type="text" id="other_floor_plans" name="other_floor_plans[]" value='["Pool","Office","Sprinkler","Boiler"]'> 

JQuery

var a = $('#other_floor_plans').val(); 
a = JSON.parse(a); 
console.log(a);