Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用属性动态附加选择框选项_Jquery - Fatal编程技术网

Jquery 使用属性动态附加选择框选项

Jquery 使用属性动态附加选择框选项,jquery,Jquery,我需要在我的选择框选项中添加额外的数据。这是我的密码 Html: <select id="questionNumber" class="form-control"> <option>Select Number</option> </select> $.each(result.data, function (key, value) { $("#questionNumber").append($('<option>', {

我需要在我的选择框选项中添加额外的数据。这是我的密码

Html:

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