当我从选项中提取标签的文本并将它们放在json中时,它们可以帮助我,就像这个例子:
<datalist id="datalist1">
<option value="US" label="United States" />
<option value="UK" label="United Kingdom" />
<option value="IN" label="India" />
</datalist>
这是代码jquery:
$("#idDatalist option").each(function(idx, option) {
var jsonPro = {};
jsonPro.NOMBRE_PROVEEDORES = $(option).val();
jsonPro.RUC_CEDULA = $(option).attr('label').text();
});
答案 0 :(得分:1)
我假设你需要一个对象数组,否则jsonPro将始终保持最后一个值
//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)
答案 1 :(得分:1)
无需在text()
函数后使用attr()
,因为它本身会为您提供label
属性的值。同时将此JS对象推送到数组以获取完整结果,如下所示
$(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)
})
&#13;
<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>
&#13;
答案 2 :(得分:1)
id
不匹配,因为选项label
属性代表您不需要使用text()
的值。请尝试以下方法:
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);
&#13;
<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 >
&#13;