Jquery html()将删除选择选项的选定属性

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字符串。在

有一个动态生成的html,上面有一个select元素。 我们可以在它里面选择一个选项,而且效果很好

就像:

<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');
}