从选项Html中提取标签的文本?

时间:2017-04-23 06:13:08

标签: javascript jquery html

当我从选项中提取标签的文本并将它们放在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();
}); 

3 个答案:

答案 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)

DEMO

答案 1 :(得分:1)

无需在text()函数后使用attr(),因为它本身会为您提供label属性的值。同时将此JS对象推送到数组以获取完整结果,如下所示

&#13;
&#13;
$(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;
&#13;
&#13;

答案 2 :(得分:1)

id不匹配,因为选项label属性代表您不需要使用text()的值。请尝试以下方法:

&#13;
&#13;
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;
&#13;
&#13;