jQuery parseHTML set prop('selected',true)

时间:2016-08-16 19:42:06

标签: jquery

我正在尝试使用与以下类似的代码来制作选择列表,然后选择其中一个选项并选择它。最后,将结果返回到字符串。

var newHtml = "<div id='divname' class='column column-one'>" +
                        selectlabel +
                        "</div>" +
                        "<div class='column column-two'>" +
                        "<select id='selectlist'>" +
                        "<option value='0'></option>" +
                        "<option value='1'>Option 2</option>" +
                        "<option value='2'>Option 3</option>" +
                        "<option value='3'>Option 4</option>" +
                        "<option value='4'>Option 5</option>" +
                        "</select>" +
                        "</div>";
                    
newHtml = $($.parseHTML(newHtml)).find("#selectlist option").eq(1).prop('selected', true).get(0).outerHTML;

newHtml结束等于"<option value="1">Option 2</option>"

所以我有两个问题:

1.为什么selected上没有正确设置option? 2.将整个更新的html字符串取回后需要什么代码?

1 个答案:

答案 0 :(得分:1)

要达到预期效果,请使用以下

1.使用.attr('selected','selected')代替.prop()
2.使用更改功能并使用$(this)获取更新和选择的选项

var newHtml = "<div id='divname' class='column column-one'>selectLabel</div>" +
  "<div class='column column-two'>" +
  "<select id='selectlist'>" +
  "<option value='0'></option>" +
  "<option value='1'>Option 2</option>" +
  "<option value='2'>Option 3</option>" +
  "<option value='3'>Option 4</option>" +
  "<option value='4'>Option 5</option>" +
  "</select>" +
  "</div>";

$(newHtml).appendTo('body');

$('#selectlist').on('change', function() {

  $(this).attr("selected", "selected");

})

https://docs.python.org/2/library/unittest.html