Jquery html()将删除选择选项的选定属性
有一个动态生成的html,上面有一个select元素。 我们可以在它里面选择一个选项,而且效果很好 就像:Jquery html()将删除选择选项的选定属性,jquery,html,Jquery,Html,有一个动态生成的html,上面有一个select元素。 我们可以在它里面选择一个选项,而且效果很好 就像: <div id="test"> <select> <option value="1">1</option> <option value="2" selected="selected">2</option> </select> </div> 获取html字符串。在
<div id="test">
<select>
<option value="1">1</option>
<option value="2" selected="selected">2</option>
</select>
</div>
获取html字符串。在IE里没关系。
但在chromenewest版本中,选项的选定属性将从字符串中删除。
alerthtmlstr返回如下结果:
<div id="test">
<select>
<option value="1">1</option>
<option value="2">2</option>
</select>
</div>
缺少selected=selected
我使用jquery-1.9.1.min.js
我不知道这是jquery的问题还是chorme的问题
多谢各位!
或者我如何用另一种方式获得上面的html?我需要把它保存到数据库里
你的,
Ivan在我测试的每一个jQuery版本的最新Chrome中,代码都能正常工作。我希望警报只输出select,而不输出父div。。。这就是以下JSFIDLE输出的内容:
$(function() {
var div = $('<div id="test"/>'),
opt = $('<option/>');
$('<select/>').html( opt.clone().val(1).text(1) )
.append( opt.clone().val(2).text(2).attr('selected','selected') )
.appendTo( div.appendTo('body') );
console.log( $('#test').html() );
});
输出:
注意:请仔细检查以确保页面上没有具有相同id=test的其他元素。如果有,那么浏览器结果会不一致,因为不能保证不同的浏览器会以相同的方式处理无效的HTML。我最终发现了问题。 这是我对元素行为的误解。我原以为,当我选择一个元素时,它会自动将我选择的选项标记为selected=selected。 不是,不是 我将html更改为:
<select id='conditionpref"+connum+"' style='width:65px;' onchange ='javascript:return changeconditionpref.apply(this);' name=''><option value='0'>0</option><option value='1'>1</option></select>
现在问题解决了
谢谢大家!
你的,
Ivan在Chrome版本34.0.1847.131 m和34.0.1847.137 mI中工作正常,在Chrome中正确获取html。检查这把小提琴。没有修改,但工作正常使用哪个版本的chrome?对我来说,它在chrome版本34.0.1847.131M中正常工作。这是工作的好,为什么投票?
<select><option value="1">1</option><option value="2" selected="selected">2</option></select>
<select id='conditionpref"+connum+"' style='width:65px;' onchange ='javascript:return changeconditionpref.apply(this);' name=''><option value='0'>0</option><option value='1'>1</option></select>
function changeconditionpref()
{
var id=jQuery(this).attr("id");
jQuery("#"+id+" option:selected").attr('selected','selected');
}