2017-05-19 1 views
1

Ich erstelle ein Array, das Text der ausgewählten Werte eines Multi-Bootstrap ausgewählt-ausgewählt enthält. Aber ich bekomme keine gewünschte Ausgabe wie: ["Navy", "Dark Blue", "Hellgrün"] Was ich bekomme ist: ["NavyDark BlueLight Green"]. Was ist der Grund ..Kann String-Array in jquery nicht abrufen

Dies ist mein Code ..

$('[name="ci_claimed_for"]').each(function() { 
     names.push($('[name="ci_claimed_for"]').find("option:selected").text()); 
}); 
+0

Fügen Sie bitte HTML-Markup zu –

+0

fügen Sie alle relevanten Code in OP wie HTML und js – guradio

+0

können Sie Ihren HTML-Code anzeigen – prasanth

Antwort

0

Sie können es in diesem

//take a empty arr 
var names = [""]; 
$('[name="ci_claimed_for"]').each(function() { 
       $('[name="ci_claimed_for"] option:selected').each(function(){ 
        names.push($(this).text()); 
       }); 
}); 

dann nur Ihr Array verschieben:

names.shift(); 
0

Sie sollten es werden iteriert wie folgt:

CODE

var arr=[]; 
var data=$('[name="ci_claimed_for"]').find("option:selected") 
for(var i=0;i<data.length;i++){ 
    arr.push(data.eq(i).text()) 
} 
console.log(arr) //desired result 

die $('[name="ci_claimed_for"]').text() Verwendung wird Geben Sie den gesamten Text im Array der Knoten

zurück
0

Für Ihre js Code benötigen .you ein $(this) innerhalb des jeweiligen .Sie das jedes Element laufen, aber nicht mit jedem Element Array

$('[name="ci_claimed_for"]').each(function() { 
     name.push($(this).val()) 
    }); 

ODER

$('[name="ci_claimed_for"]').each(function() { 
      names.push($(this).find("option:selected").text()); 
     }); 
1

Sie drängen nicht Sie müssen sogar ein neues Array erstellen und dann hineinschieben: Verwenden Sie einfach die .map() Funktion von jQuery:

var names = $('[name="ci_claimed_for"]').map(function() { 
    return $(this).find("option:selected").text()); 
}).get(); 

Denken Sie daran, am Ende .get() zu ketten, weil es eine jQuery-Sammlung zurückgibt. Verwenden Sie .get(), um auf das tatsächlich zurückgegebene Array zu verweisen. Hier

ist ein Proof-of-Concept-Beispiel:

$(function() { 
 
    var names = $('[name="ci_claimed_for"]').map(function() { 
 
     return $(this).find("option:selected").text(); 
 
    }).get(); 
 
    
 
    console.log(names); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select name="ci_claimed_for"> 
 
    <option value="John" selected>John</option> 
 
    <option value="Doe">Doe</option> 
 
</select> 
 
<select name="ci_claimed_for"> 
 
    <option value="Jane" selected>Jane</option> 
 
    <option value="Doe">Doe</option> 
 
</select>