使用div的数据填充选择onchange函数id

时间:2017-10-24 18:09:37

标签: javascript jquery html

我有下一个代码:

<div class="form-group question" id="encuesta[ENC_ID]" value="ENC_ID" name="encuesta" data-encuesta_id="ENC_ID" style="border-radius: 3px;border-color: #5e5e5e;border: 1px;
border-style: solid;padding: 4px 4px 4px 4px;">
<div class="row">
    <div class="col-lg-11">
        <h5>Pregunta <div id="preg_num" name="preg_num" class="preg_num">ENC_ID</div></h5><br>
    </div>
    <div class="col-lg-1">
        <i class="fa fa-times" aria-hidden="true" onclick="deletePreg(ENC_ID);"></i>
    </div>
</div>
<div class="row">
    <div class="col-lg-2">
        <label for="enc_nombre">Tipo de pregunta: </label>
    </div>
    <div class="col-lg-3">
        <select class="form-control" onchange="cambioOpc(ENC_ID);" id="tipo[ENC_ID]" name="question_type[ENC_ID]">
          <option value="input" selected>Texto abierto</option>
          <option value="radio">Seleccionar una</option>
          <option value="checkbox">Seleccionar varias</option>
        </select></div>

此代码用于创建问题并添加用户需要的问题数量,以及页面何时第一次加载包含文本&#34; ENC_ID&#34;的所有html。由id更改,问题是当用户删除某个问题时,我不知道如何更改select的id以将相同的id设置为具有主div &#34; data-encuesta_id& #34;

删除问题的文件的JS:

function deletePreg(idENC){
$('div.question').each(function(i, obj)
{
    $(obj).find('.preg_num').text(i + 1);
    pregNum = i + 1;
    if(idENC == $(obj).data('encuesta_id')){
        $(obj).remove();
    }
});
reenumerarPreguntas();}
function reenumerarPreguntas(){
$('div.question').each(function(i, obj){
    $(obj).find('.preg_num').text(i + 1);
    pregNum = i + 1;
    $(obj).data('encuesta_id', i+1);
});}

1 个答案:

答案 0 :(得分:1)

<强>建议:

<select>中,将“tipo”移动为一个类并删除ID。将ENCID作为数据属性。像这样:

<select class="form-control tipo" onchange="cambioOpc(ENC_ID);" data-enc-id="[ENC_ID]" name="question_type[ENC_ID]">

现在您可以引用select by class + data属性值并改为更改数据属性。

示例: $('.tipo[data-enc-id="'+idENC+'"]').data('enc-id', new_enc_id);

如何更改循环中的ID

  

如果您确实必须更改ID,您可以这样:

示例:

$('#tipo'+idENC).prop('id', 'tipo'+new_enc_id_here);

<强> OR

$('#tipo'+idENC).attr('id', 'tipo'+new_enc_id_here);