尝试根据ID为输入标记赋值时出现问题

时间:2016-05-11 09:27:11

标签: jquery

我正在努力找出这里的错误。我使用Jquery来创建一个div元素,其中包含几个子元素。 此div在按钮单击时创建,并具有由变量获取的ID:

        operator_list = 'something';
        single_value_input = 'something_else';
        input = attribute_list + operator_list + single_value_input;
        input_id = attribute_list;

        // create input text area with id of the single value
        $("#added_rules").append( '<div class="input-group"><div class="input-group-btn" id="erase_query"><a href="#"  class="btn btn-primary btn-mg" data-toggle="modal" data-target="#myModal" title="Help" ><span class="glyphicon glyphicon-minus"></span></a></div><input type="text" class="form-control" id="' + input_id + '" placeholder="" data-toggle="tooltip" title="" readonly></br></div>');

然后我尝试使用jquery:

在输入标记内放置一些值
$("#" + input_id).val(input);

它不起作用。什么都没发生,我在开发人员工具中没有错误。 输入标签的分配ID是根据用户的输入生成的,其形式为:&#39; NAME_1&gt; 24&#39;也许这个问题与转义字符有关..

当我尝试为input_id分配一个字符串而不是为它分配一个变量时,它就可以工作了。但这不是我想要的。

2 个答案:

答案 0 :(得分:2)

它没有用,因为你的&#34; ID&#34;包含$("#"+selector)正在挑选的CSS选择器。

$("#" + input_id).val(input);

变为

$("#NAME_1>24").val(input);

说找到所有&#34; 24&#34;作为#NAME 1的子项的元素 - 这显然是没有意义的。

最简单的选择是不在ID中包含css选择器。

如果无法做到这一点,您可以使用属性匹配,例如:

$("['id=" + input_id + "']").val(input);

但这不会非常有效。

答案 1 :(得分:1)

直接在附加

中连接值
$("#added_rules").append( '<div class="input-group"><div class="input-group-btn" id="erase_query"><a href="#"  class="btn btn-primary btn-mg" data-toggle="modal" data-target="#myModal" title="Help" ><span class="glyphicon glyphicon-minus"></span></a></div><input type="text" class="form-control" id="' + input_id + '" placeholder="" data-toggle="tooltip" title="" readonly value="'.value.'"></br></div>');