Jquery 使用属性动态附加选择框选项
我需要在我的选择框选项中添加额外的数据。这是我的密码 Html:Jquery 使用属性动态附加选择框选项,jquery,Jquery,我需要在我的选择框选项中添加额外的数据。这是我的密码 Html: <select id="questionNumber" class="form-control"> <option>Select Number</option> </select> $.each(result.data, function (key, value) { $("#questionNumber").append($('<option>', {
<select id="questionNumber" class="form-control">
<option>Select Number</option>
</select>
$.each(result.data, function (key, value) {
$("#questionNumber").append($('<option>', {
value: value.id,
text: value.number
}));
});
所以我的预期结果是
<select id="questionNumber" class="form-control">
<option>Select Number</option>
<option value="170" data-mark="2">1</option>
<option value="171" data-mark="3">2</option>
</select>
选择号码
1.
2.
我该怎么办?
谢谢。迭代数据以创建选项,然后将其附加到select元素中
$html='';
$.each(result.data, function (key, value) {
html +='<option value="' + value.id + '" data-mark="'+value.mark+'">' + value.number + '</option>';
});
$("#questionNumber").append(html);
$html='';
$.each(结果、数据、函数(键、值){
html+=''+value.number+'';
});
$(“#问题编号”).append(html);
这是您的解决方案
var结果={数据:[
{
id:“5”,
编号:“5”
},
{
id:“89”,
编号:“89”
}
]}
$.each(结果、数据、函数(键、值){
$(“#问题编号”)。附加($(''){
value:value.id,
文本:value.number,
“数据标记”:value.id
}));
});代码>
选择号码
您可以将数据
属性添加到生成的HTML中。还请注意,您可以修改逻辑,使DOM只更新一次,而不是在每次迭代中更新。试试这个:
var html = result.data.map(function(o) {
return `<option value="${o.id}" data-mark="${o.mark}">${o.number}</option>`;
}).join('');
$("#questionNumber").append(html);
var html=result.data.map(函数(o){
返回`${o.number}`;
}).加入(“”);
$(“#问题编号”).append(html);
这是一个类似的示例,更完整:
var cadena_user_pais = ($(this).attr('id')).split("_");
var id_user_pais = cadena_user_pais[2];
var request = 'view_tipoNIF';
//tipo de NIF
$.ajax({
url: "fetch_single_users.php",
method: "POST",
data:{id_user_pais:id_user_pais,request:request},
dataType: "json",
success:function(data)
{
//alert('hola');
var html='';
$.each(data, function (key, value) {
html +='<option value="' + value.id + '">' + value.NIF + '</option>';
});
$("#select_user_tipoNIF").append(html);
} //success
});
var cadena_user_pais=($(this.attr('id')).split('uu');
var id_user_pais=cadena_user_pais[2];
var请求='view_tipoNIF';
//蒂波德尼夫酒店
$.ajax({
url:“fetch_single_users.php”,
方法:“张贴”,
数据:{id_user_pais:id_user_pais,request:request},
数据类型:“json”,
成功:功能(数据)
{
//警惕(“你好”);
var html='';
$。每个(数据、函数(键、值){
html+=''+value.NIF+'';
});
$(“选择用户提示”).append(html);
}//成功
});
@31piy这正是OP想要的,并且比每次迭代执行一次DOM操作快得多。正如我在回答中提到的,使用data()
意味着该属性不会出现在DOM中。OP表示,这是一项要求。data()
也可能满足他们的需求
var cadena_user_pais = ($(this).attr('id')).split("_");
var id_user_pais = cadena_user_pais[2];
var request = 'view_tipoNIF';
//tipo de NIF
$.ajax({
url: "fetch_single_users.php",
method: "POST",
data:{id_user_pais:id_user_pais,request:request},
dataType: "json",
success:function(data)
{
//alert('hola');
var html='';
$.each(data, function (key, value) {
html +='<option value="' + value.id + '">' + value.NIF + '</option>';
});
$("#select_user_tipoNIF").append(html);
} //success
});