【发布时间】:2018-07-25 06:59:21
【问题描述】:
我有这段代码,我在按下添加按钮时添加了一个选择选项。问题是我在选择下拉列表之外获取选项值。一切似乎都很好,但输出很奇怪。大家可以看看吗?
这是要放置内容的div。
<div id="here"></div>
这是添加按钮
<div class="form-group col-auto">
<button type="button" class="btn btn-success" id="trigger" style="float: left">Add an item</button>
</div>
这是js代码
<script type="text/javascript">
var val = $('#numoforders').val();
$('#trigger').click(function(){
val++;
$("#here").append('<div class="row">');
$("#here").append('<div class="form-group">');
$("#here").append('Select category');
$("#here").append('<select class="form-control" id="category_id['+val+']" name="category_id['+val+']">');
$("#here").append('<option selected>--Select a category--</option>');
@foreach($categories as $category)
$("#here").append('<option value="{{$category->id}}">{{$category->name}}</option>');
@endforeach
$("#here").append('</select>');
$("#here").append('</div>');
$("#here").append('</div>');
});
</script>
categories 是从控制器传过来的变量,我用的是 laravel。
如图所示,输出很奇怪。 任何帮助将不胜感激。
【问题讨论】:
-
您正在附加不完整的 html,而浏览器正试图弥补这一点
-
您将所有内容附加到 id 为
here的元素,而这恰好是<div>。所以输出是应该的。如果将选项元素附加到 div 还会是什么? -
@PatrickEvans 是对的。例如,当您附加
<div>标签时,JQuery 会添加一个 div 标签,但也会立即关闭它。 -
另外,我建议应该重复使用选择器而不是多次调用。
-
谢谢大家。是的,我错过了一些关于 .append 作用的信息。非常感谢。
标签: javascript jquery html laravel