我有时会克隆一行。


 < script id =“SubRow10”type =“text / template”>&# XA; < select id =“SubSelect10”class =“form-control”name =“SubcategorySelect”required>
 < option value =“m,2”> Op1< / option>
 < option value =“m,3”> Op2< / option>
 < option value =“m,5”> Op3< / option>
 < option value =“m,6”> Op4< / option>
 < / select>
< / script>



 我有一个表单可以为添加一个选项#Subselect10“

但是当我这样做时:
$('#SubSelect10')。append('< option value =“m,8”> Op5< / option>');



 它不起作用,但当我这样做时:


 $('#SubRow10')。append('< option value =“m,8”> Op5< / option>');& #xA;


 它有效,但不会将其添加到选择菜单。
&#xA;&#xA; <有人可以引导我朝着正确的方向前进吗?&#xA;&#xA;这是 JSFiddle
&#xA;答案 0 :(得分:1)
这样做:
var template = $('#SubRow10');
template.html($(template.html()).append('<option value="m,8">Op5</option>'));
console.log(template.html());
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script id="SubRow10" type="text/template">
<select id="SubSelect10" class="form-control" name="SubcategorySelect" required>
<option value="m,2">Op1</option>
<option value="m,3">Op2</option>
<option value="m,5">Op3</option>
<option value="m,6">Op4</option>
</select>
</script>
&#13;
问题在于<script>
标记不会将其内容呈现为HTML,而是呈现为文本,即使type
不是text/javascript
。为了避免这个问题,您需要在注入另一个<option>
之前将内容解析为HTML。
答案 1 :(得分:0)
可能问题是你的字符串"<option value="m,8">Op5</option>"
包含双引号,因此JavaScript将其视为函数的两个不同的独立参数。尝试转义字符串中的双引号(改为使用\"
)或使用单引号来包装字符串,例如。
$("#SubRow10").append('<option value="m,8">Op5</option>')