2017-04-23 70 views
0

當我從選項中提取標籤的文本,並把它們放在一個JSON,他們可以幫助我,像這樣的例子:從選項Html中提取標籤的文本?

<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(); 
}); 

回答

1

attr()函數之後無需使用text(),因爲它本身會爲您提供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) 
 
})
<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

我假設你需要對象的數組,否則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

+0

THX這麼多的糾正我的錯誤,:) –

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);
<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這麼多的工作,謝謝:) –

+0

@Bakke麥地那,你是最歡迎的。 – Mamun