我使用Jquery从服务器获取响应,并使用以下代码将特定元素替换为Response中的响应:
//msg is the returned message from the response
//$row is the element being replaced
var $newRow = $(msg).find('#'+$row.attr('id'));
$row.replaceWith($newRow);
现在msg中有一个选择框,其中包含以下html代码(包括外部元素):
<div class="grid-cell-value">
<input type="number" data-field="quantity" value="60.7" disabled />
<select data-field="monetary_unit" value="12" disabled />
<option value="12" selected="selected">EURO</option>
</select>
</div>
但是当我在Jquery中包装msg
时,这就是select元素会发生的事情。(注意option
元素在select
元素之外。
<div class="grid-cell-value">
<input type="number" data-field="quantity" value="60.7" disabled="">
<select data-field="monetary_unit" value="12" disabled="">
</select>
<option value="12" selected="selected">EURO</option>
</div>
这里有什么问题?
答案 0 :(得分:2)
select标签是自动关闭的,注意/&gt;最后:
<select data-field="monetary_unit" value="12" disabled/> <== here
答案 1 :(得分:1)
如果您对第一个片段感兴趣,您会看到“select”元素如下所示:
<select data-field="monetary_unit" value="12" disabled/>
注意结尾的“/”?
从服务器获取的HTML格式不正确,SELECT元素被视为void元素。 void元素是一个元素,没有close标记,例如<br/>
。