2017-04-23 6 views
0

Als ich den Text eines Etiketts von einer Option, und steckte sie in eine json extrahieren, könnten sie mir helfen, wie in diesem Beispiel:Extrahieren Sie den Text eines Labels aus einer Option Html?

<datalist id="datalist1"> 
<option value="US" label="United States" /> 
<option value="UK" label="United Kingdom" /> 
<option value="IN" label="India" /> 
</datalist> 

und dies ist der Code jquery:

$("#idDatalist option").each(function(idx, option) { 
    var jsonPro = {}; 
    jsonPro.NOMBRE_PROVEEDORES = $(option).val(); 
    jsonPro.RUC_CEDULA = $(option).attr('label').text(); 
}); 

Antwort

1

Keine Notwendigkeit, die text() nach der attr() Funktion zu verwenden, da es Ihnen den Wert label Attribut gibt. Auch drücken; JS Objekt in ein Array wie das vollständige Ergebnis zu erhalten unter

$(function() { 
 
    var arr = [] 
 
    $("#datalist1 option").each(function(idx, option) { 
 
    var jsonPro = {}; 
 
    jsonPro.NOMBRE_PROVEEDORES = $(option).val(); 
 
    jsonPro.RUC_CEDULA = $(option).attr('label'); 
 
    arr.push(jsonPro) 
 
    }); 
 
    console.log(arr) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<datalist id="datalist1"> 
 
<option value="US" label="United States" /> 
 
<option value="UK" label="United Kingdom" /> 
 
<option value="IN" label="India" /> 
 
</datalist>

1

ich nehme an, Sie ein Array von Objekten benötigen, andernfalls jsonPro immer

//Create an empty object 
var jsonPro = []; 
// check the id here and loop throught the options 
$("#datalist1 option").each(function(idx, option) { 
    // create a local object here 
    var dataObj={} 
    // populate the object with relevant value 
    dataObj.NOMBRE_PROVEEDORES = $(option).val(); 
    // attr will give the value back. No need of text() 
    dataObj.RUC_CEDULA = $(option).attr('label'); 
    // push this local object to the array 
    jsonPro.push(dataObj) 
}); 
console.log(jsonPro) 

DEMO

den letzten Wert halten
+0

thx so viel für meine Fehler zu korrigieren, :) –

1

Die id nicht übereinstimmen und weil die label Attribut Option den Wert darstellt, brauchen Sie nicht text() zu verwenden. Versuchen Sie Folgendes:

var arr = []; 
 
$("#datalist1 option").each(function(idx, option) { 
 
    var jsonPro = {}; 
 
    jsonPro.NOMBRE_PROVEEDORES = $(this).val(); 
 
    jsonPro.RUC_CEDULA = $(this).attr('label'); 
 
    arr.push(jsonPro); 
 
}); 
 
console.log(arr);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<datalist id="datalist1"> 
 
    <option value="US" label="United States" /> 
 
    <option value="UK" label="United Kingdom" /> 
 
    <option value="IN" label="India" /> 
 
</datalist >

+0

thx so viel gearbeitet wird, Dank :) –

+0

@Bakke Medina, Sie sind herzlich willkommen. – Mamun

Verwandte Themen