我正在尝试使用与以下类似的代码来制作选择列表,然后选择其中一个选项并选择它。最后,将结果返回到字符串。
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字符串取回后需要什么代码?
答案 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");
})